Problema con el autocompletado de código / resaltado de syntax en Xcode 4.x

Tengo un problema bastante extraño en Xcode en uno de mis proyectos.

Cuando empiezo a escribir mi código, estoy acostumbrado a la finalización automática que sugiere numerosas entradas para mí. Por alguna razón, desde ayer, esto ha dejado de funcionar. Ahora obtengo extrañas entradas de autocompletado como “y”, “el”, “Andy”, “MyCompanyName”, etc.

Esto nunca sucedió antes y entonces estoy confundido sobre por qué ha ocurrido ahora, y solo en uno de mis proyectos. Busqué en este sitio durante bastante tiempo cualquier corrección e intenté limpiar Derived Data, salir de Xcode, eliminar el espacio de trabajo y los archivos de usuario del proyecto de Xcode y reiniciar, pero después de hacerlo, el autocompletado funciona durante un tiempo. , luego se rompe nuevamente después de aproximadamente 30 segundos de encoding.

A veces puedo ver soluciones de autocompletar, pero solo texto sin formato (sin indicadores de clase), otras veces deja de funcionar por completo.

¿Alguien más ha experimentado algo como esto y podría proporcionar alguna solución?

Sufrí durante mucho tiempo con un proyecto que seguía perdiendo autocompletado y resaltado de syntax. Eliminar la carpeta Derived Data y reiniciar Xcode lo arreglaría temporalmente, y eventualmente eso casi se convirtió en memoria muscular. Mi problema parecía agravado al usar un espacio de trabajo que contenía varios proyectos, muchos de los cuales dependían el uno del otro. Resultó que el problema era con el indizador clang. El proyecto se comstackría limpiamente, pero mirando el resultado del indexador estaba lleno de errores. Reparar TODOS estos resolvió mis problemas.

ANTES DE HACER CUALQUIER COSA : asegúrese de que TODOS los objectives en TODOS los proyectos en su Área de trabajo se comstackn limpiamente. Eso es sin NINGUNA advertencia. Esto fue una gran falla de mi parte: tenía objectives antiguos que simplemente no se comstackban limpiamente. Algunos de estos no se usaron y se pudieron eliminar, otros no fueron ARC que usaron módulos en objectives que se habían convertido a ARC (convirtieron esos objectives también) y algunos solo necesitaron la corrección del código.

Una vez que haya resuelto TODOS esos problemas, lo primero que debemos saber es dónde está fallando el indexador, haciendo un índice completo de su proyecto.

  • Primero, asegúrese de que Xcode esté cerrado, luego suba el nivel del mensaje de advertencia del indexador ingresando en la Terminal:

    defaults write com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3 
  • Luego encuentre la carpeta de Datos Derivados para su proyecto / área de trabajo (probablemente ~ / Library / Developer / Xcode / DerivedData / el nombre de su proyecto -algunos galimatías ), y elimínelo (pero mantenga abierta la carpeta de Datos Derivados porque probablemente deba ir volver y hacer esto algunas veces.

  • A continuación, abra la aplicación de la consola y haga clic en Borrar pantalla, y configure el filtro en “IDE” para mostrar solo los mensajes que nos interesan.

  • Finalmente, abra Xcode y el proyecto / área de trabajo que está causando sus problemas, y verá que la consola comienza a llenarse con mensajes.

  • Para buscar errores, cambie el filtro de la Consola a “error:” – nuestro objective es reducirlos a cero.

  • La mayoría de los errores que encontré no tenían archivos de encabezado. Xcode en sí mismo parece ser más inteligente que el indexador. Parece ser capaz de encontrar e incluir archivos de cabecera de otros proyectos que el indexador no puede.

  • Por lo tanto, en cualquier lugar donde vea ” error fatal: ‘archivo no encontrado’ h ‘no encontrado “, asegúrese de agregar la ruta de ese archivo a las rutas de búsqueda del encabezado del usuario en la configuración de comstackción del destino. La mejor forma que he encontrado para hacer esto es hacer doble clic en el campo para obtener la ventana emergente y arrastrar la carpeta desde el buscador hasta allí. Esto agrega una nueva entrada, pero suponiendo que está en el mismo espacio de trabajo, agrega una ruta de archivo relativa (esto es importante en caso de que mueva su carpeta de espacio de trabajo en el futuro). Si tiene objectives múltiples para el mismo proyecto, puede establecer la ruta de búsqueda en el proyecto en lugar del nivel objective, y establecer las rutas de búsqueda de destino en $ (heredado) .

  • Es posible que tenga problemas similares con las bibliotecas o marcos: nuevamente, actualice la ruta de búsqueda adecuada.

  • Una vez que haya arreglado algunos errores, cierre Xcode, borre la consola, elimine los datos derivados del proyecto, abra Xcode y permita que vuelva a indexar.

  • Repita hasta que todos sus errores hayan desaparecido.

Una vez que estés en este buen lugar, el autocompletado de códigos y el resaltado de syntax deberían funcionar como un hechizo 🙂

Todavía me sucede ocasionalmente en Xcode 4.3.2,

Simplemente hago esto:

Xcode> Organizador> Proyectos> Seleccione su proyecto> Datos derivados> Haga clic en el botón Eliminar

Esto también elimina la indexación. Normalmente reinicio Xcode y comienza a volver a indexar, y obtengo de nuevo mi resaltado de syntax y autocompletado. (Yo ni siquiera reinicio Xcode, ¡pero siempre es una buena excusa tomarse un descanso de comenzar en una pantalla durante horas para tus glazballs!)

Sucede que raramente, que esto es relativamente indoloro.

La mayoría de las veces que me encuentro con este problema al eliminar el DerivedData, lo soluciono por mí, pero en un caso no fue así. Turnos No pude conectar el archivo fuente que creé a un objective en particular. Una vez que lo conecté a una fuente de destino, el resaltado comenzó a funcionar. Si otras soluciones no funcionan, este podría ser su problema.

Busque ‘GCC_INCREASE_PRECOMPILED_HEADER_SHARING’ en la configuración de comstackción y cámbielo a YES. – Esto funcionó para mí.

GCC_INCREASE_PRECOMPILED_HEADER_SHARING

Es realmente embarazoso. Por error, quité la marca de verificación en Preferencias de Xcode> Edición de texto> Finalización de código e intenté todas las soluciones posibles de eso.

Por favor, compruebe esta preferencia también antes de buscar en otra solución:

Preferencia de autocompletar de Xcode

Puede solucionar este problema de la siguiente manera:

  1. Comentando todas las entradas en el archivo .pch del proyecto (normalmente cuando lo haces, Xcode elegirá autocompletar ahora)
  2. Limpiando el proyecto
  3. Archivo no recomendado de .pch
  4. Reconstruyendo el proyecto

Ahora debería poder ver el resaltado de syntax correcto y las autocompletaciones deberían ser correctas.

¿Que demonios fue eso? No recibí ningún error de File not found del comstackdor. Se UITestTarget ese problema al eliminar algunos enlaces de archivos perdidos de UnitTest y UITestTarget de Compiler Sources en Project's Build Phases .

enter image description here

Eliminar solo los datos derivados del proyecto que está fallando no es suficiente

Tuve que eliminar todos los datos derivados de todos los proyectos, hice un proyecto limpio y reinicié Xcode

Asombroso