El sentido del código Xcode 4 no funciona

Estoy ejecutando un “viejo” proyecto Xcode 3 en Xcode 4 y el sentido del código no funciona para mis propias clases. He intentado seguir:

  • Limpiar / reconstruir
  • Eliminar los datos derivados
  • Instalar documentación 4.3
  • Reiniciar

Sin suerte.

Algunas veces el sentido del código funciona, pero la mayoría de las veces solo obtengo “No Completions”.

Prueba esto:

Organizador abierto y luego pestaña Proyecto.

Borre los “Datos derivados”. Xcode debería volver a indexar su proyecto y el sentido del código debería funcionar. Al menos funcionó para mí.

Sé que es tarde, pero para referencia: http://sealedabstract.com/code/when-xcode-4s-code-completion-autocomplete-breaks/

  • Cierre el proyecto, dejando XCode todavía ejecutándose.

  • Abra la ventana Organizador de XCode, vaya a la pestaña Proyectos, seleccione el proyecto correcto y presione el botón Eliminar junto a “Datos derivados”.

  • Salga de XCode.

  • Navegue al archivo .xcodeproject de su proyecto en Finder. Haga clic con el botón derecho y seleccione “Mostrar contenido del paquete”.

  • Deje el archivo project.pbxproj, pero elimine el archivo project.xcworkspace, los archivos .pbxuser y toda la carpeta userdata.

  • Abra el proyecto en XCode. Verá que XCode se maneja alto en el uso de la CPU por alrededor de 10-60 segundos, dependiendo del tamaño de su proyecto. La ventana de actividad dirá “Indización”

  • Cuando el pico de tu CPU regrese a la Tierra, la finalización del código volverá a funcionar.

Hay una gran cantidad de borrado pasando allí, así que ten cuidado, pero esto definitivamente funcionó para mí.

He estado haciendo esto, y ha funcionado varias veces para mí (después de probar todo lo anterior anteriormente).

Editar: Ahora solo toco el espacio, retrocede (la versión mac) y reconstruyo … funciona bien. Luego, recuerda desplazarte (a veces los colores no aparecen hasta que te desplaces a alguna parte)

  1. Encuentra tu archivo de prefijo: “ProjectName_prefix.pch”.
  2. Comente alguna línea. (básicamente cambiarlo)
  3. Construya su proyecto, no importa si falla o no.
  4. Descomúnjalo.
  5. Construir de nuevo

Estoy apostando solo al paso 2 (modificar el prefijo) es lo que lo hace, pero estos esencialmente lo vuelven a poner en funcionamiento. De repente, todo se recoló mágicamente y completa las funciones.

Buena suerte si eso no lo soluciona, tal vez intente hacer esto con sus archivos de dependencia pch (three20 o FB api)

Limpiar los “Datos Derivados” solo funciona temporalmente para mí. Tengo que hacerlo y luego reiniciar Xcode como 3-4 veces al día para que el código funcione de nuevo.

Descubrí que la causa real está en la configuración de comstackción del objective . Moví todo desde las Rutas de búsqueda de encabezado a las Rutas de búsqueda de encabezado de usuario y se corrigió. En mi caso, el marco con el que estoy trabajando es RestKit.

Por cierto, se me ocurrió esto porque estaba agregando otro proyecto ( QuickDialog ) a mi proyecto y tenía curiosidad de que estuviera usando las Rutas de Búsqueda del Encabezado del Usuario , pero no las Rutas de Búsqueda del Encabezado . Aquí está la diferencia entre ellos.

Puede solucionar ese problema modificando la configuración de comstackción de este modo, encabezados de prefijo precomstackr: NO

Para su información, si un archivo no tiene sentido de código pero sí el rest del proyecto, verifique que se haya agregado a un objective. Una vez que hice eso, obtuve el sentido del código en ese archivo.

Han pasado años, pero la respuesta es simplemente mover el código a una nueva carpeta y el sentido del código debería estar funcionando ahora.

Esto sucedió cuando agregué una nueva clase Objective-C y el sentido del código no funciona solo en los archivos .m y .h recién agregados (en la última actualización de XCode 4 durante esta publicación).

Cierre todas las ventanas xcode

Borre todos sus proyectos de xcode> window> organizer y reinicie su proyecto. Ahora detectará e indexará su proyecto correctamente.

Escribí sobre esto en detalle aquí .

Básicamente mi solución fue esa con localización. Actualicé de xcode 3.2.5 a xcode 4 y luego lo atornillé con el constructor de interfaz integrado y activé accidentalmente la localización de un archivo XIB que colocó mis archivos fuente en el directorio en.lproj. Después de moverlos de vuelta a la carpeta Classes funcionó perfectamente.

De nuevo, por el bien de ayudar a otros con este problema que, en mi caso, sucedió al actualizar a Xcode 4.3.

Por supuesto que probé las soluciones ofrecidas en esta publicación, y ninguna de ellas funcionó. Pero la sugerencia de mover la ubicación del proyecto en Finder trajo un poco de sentido del código, pero las sugerencias no tenían ningún sentido.

Terminé borrando mi proyecto y lo volví a clonar desde el repository de git. Me llevé Code Sense por mí …

Abro un segundo proyecto en segundo plano cada vez que deja de funcionar la detección de código de mi Xcode (por lo general funciona la primera vez que abro el proyecto, pero después de un tiempo el sentido del código ya no funciona). Entonces, lo que hago es abrir un segundo proyecto en Xcode. Xcode comenzará a indexar el segundo proyecto y mágicamente el sentido del código para mi proyecto principal está de vuelta.

Ejecutando Xcode 4.3.1 en Lion

Espero que esto ayude a alguien.

A partir de este comentario , pude depurar el problema por mi parte, parecía ser un indicador de mala fe que el preprocesador de clang no reconocía correctamente. Básicamente, corriendo

defaults write com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3

en Terminal aumenta la verbosidad del indexador y debería ayudarlo a localizar problemas. Abra Console.app y busque mensajes de Xcode, la cadena de búsqueda IDEIndexingClangInvocation me ayudó a encontrarlos.

Para mí, sucedió simplemente porque el archivo no tenía membresía objective. Si las primeras respuestas no le funcionaron, vaya a su archivo .m (presumiblemente es el archivo con el que está teniendo problemas), abra la vista Utilidades (Editar -> Utilidades -> Mostrar inspector de archivos) y debajo de “Destino” Membresía “marque el destino al que desea que pertenezca este archivo.