xcode autocomplete xcode9

Xcode 9 Autocompletar no funciona al 100%: funciona parcialmente



autocomplete xcode9 (22)

Esta mañana, Xcode 9.0 (9A235) muestra un nuevo / extraño cuadro de Autocompletar que ya no es lo que solía ser. ¿Cómo obtengo el cuadro de autocompletar completo para que el autocompletado se vea como suele ser?


  1. compruebe si seleccionó las Suggest completions while typing Xcode -> Preferencias -> Edición de texto
  2. navegue al usuario-> Biblioteca-> Desarrollador-> Xcode-> DerivedData en Finder y elimine la carpeta DerivedData

Acabo de perder un día tratando de resolver la pesadilla de autocompletar de Xcode (9.2). La eliminación de datos derivados pareció funcionar brevemente y luego las cosas se revirtieron. Los reinicios, etc. y otros vudú sugeridos no lograron hacer la diferencia.

Me di por vencido y descargué la versión de prueba de 30 días de AppCode de Jet Brains. El autocompletado funcionó bien allí y esto puede ser una coincidencia, pero luego comenzó a funcionar nuevamente en mi proyecto en Xcode. No puedo garantizar que siga funcionando ...


Agregué aquí lo que estaba sucediendo en mi proyecto en caso de que pueda ayudar a alguien más ... Tenía 2 archivos con el mismo nombre y no me di cuenta.


Aquí hay un poco de solución pero funciona.

  1. Limpia el proyecto ... Comando + Mayús + K

  2. Limpie la carpeta de compilación ... Comando + Mayús + Opciones (Alt) + K

  3. Eliminar datos derivados para el proyecto ... Esto se puede hacer con la ayuda de este enlace:

    ¿Cómo puedo eliminar datos derivados en Xcode 9?

  4. Cierra XCode.

  5. Vuelva a abrir XCode (deje que se complete la indexación) y cree el proyecto ... Comando + B

Una vez que se termine de construir, las sugerencias volverán. Lo he intentado dos veces.


Cosas para probar:

1

Ejecute este comando en el directorio del proyecto si usa cocoapods:

rm -rf ~/Library/Caches/CocoaPods; rm -rf Pods; rm -rf ~/Library/Developer/Xcode/DerivedData/*; pod deintegrate; pod setup; pod install;


2

Limpiar datos en caché

Limpia el proyecto -> Cmd + Shift + K

Limpie la carpeta de compilación -> Cmd + Shift + Opción + K

Si se saltó el paso uno:
Eliminar datos derivados
Xcode Preferences -> Locations ->
El símbolo de flecha lo lleva a datos DerrivedData -> Eliminar carpeta


3

Verifique las fuentes de compilación de su fase de construcción.

Todos los .swift y .m del proyecto deben estar en esta lista o no se completará automáticamente en esos archivos.


4 4

Optimiza tu editor:

Use fileprivate en cada propiedad y función de clase que pueda para reducir el alcance del trabajo de los compiladores por elemento.

Escriba código modular / OOP para que tenga menos código para que lo lea el compilador.

Evite usar la Infección de tipo cuando el resultado sea un cálculo complejo e intente desglosar los cálculos complejos en let this = smallerOperation .


Después de un largo tiempo de búsqueda, finalmente solucioné el problema por mí. En Xcode> Preferencias> Edición de texto, en "Finalización de código", tuve la opción "Usar la tecla Escape para mostrar sugerencias de finalización" marcada por alguna razón. Tan pronto como desmarqué esta casilla, la finalización automática funcionó de maravilla, ¡sin necesidad de reiniciar Xcode! (Xcode 10)


El único momento en que la función de autocompletar no funciona es cuando el tipo de código fuente para el archivo no está configurado en Objective-C o cuando está escribiendo en otro idioma (incluso si solo es un pequeño fragmento de, digamos, C).

Tampoco funciona si hay un error de sintaxis en o sobre la línea que está editando. Una llave faltante al final de una llamada al método, incluso si no está en el archivo que está editando, evitará que el autocompletado obtenga el contexto necesario para sugerir comandos relevantes. También lo hará un archivo faltante (que se muestra en rojo en su lista de archivos), incluso si ese no es el archivo en el que está trabajando.

Cuando lo haga, intente una compilación para localizar errores y luego corríjalos.


Eliminar el archivo de los Objetivos de prueba solucionó mi problema.



Este enlace me ayudó. Abra la Configuración de compilación y complete las rutas de búsqueda del marco. Ver la imagen de abajo.


Esto puede suceder cuando el archivo no es miembro del Destino. Abra el archivo donde el autocompletado no funciona y muestre la pestaña "Utilidades" en la parte superior derecha de Xcode (azul en la captura de pantalla a continuación).

Asegúrese de que su Target (generalmente el nombre de su aplicación) esté marcado. La función de autocompletar debería funcionar casi instantáneamente sin reiniciar Xcode, limpiar o eliminar datos derivados.


Estoy usando Xcode 10.2 y tuve el mismo problema.

Esta respuesta de axel me ayudó a arreglar.

De todos modos, voy a describir un poco más:

  1. Vaya a YourProject.xcodeproj haciendo clic con el botón derecho del mouse y abra Show Package Contents
  2. Vaya a xcuserdata y elimine su youruser.xcuserdatad

Si también tiene xcworkspace (si ya tiene alguna cápsula instalada), realice los pasos 3 y 4, si no, simplemente omita los pasos 3 y 4:

  1. Vaya a YourProject.xcworkspace haciendo clic con el botón derecho del mouse y abra Show Package Contents
  2. Vaya a xcuserdata y elimine su youruser.xcuserdatad

  3. Salir de Xcode

  4. Eliminar datos derivados utilizando Terminal:

rm -rf ~ / Library / Developer / Xcode / DerivedData

  1. Abra Xcode y verifique si funciona.


Los errores de compilación pueden romper la función de autocompletado en Xcode.


Mi caso puede parecer demasiado específico para ayudar, pero podría darle a alguien una idea de cómo resolver la finalización automática interrumpida. Xcode 10.2.1.

En mi caso, el autocompletado dejó de funcionar por completo y ninguna de estas otras respuestas me ayudó. Además, se podía escuchar que el ventilador de la computadora se volvía más fuerte, lo que indicaba que algo funcionaba demasiado (no se ejecutaban otras aplicaciones), debe tenerse en cuenta que estaba editando en una computadora portátil MacBook Pro. Parecía estar relacionado con el editor luchando por analizar la ecuación que había escrito:

switch mtype { case .indeterminate: newPosition.x = (frame.width - mainFigureText.frame.width) / 2 case .right: newPosition.x = (((frame.width / 2) - mainFigureText.frame.width) / 2) + (frame.width / 2) case .left: newPosition.x = (((frame.width / 2) - mainFigureText.frame.width) / 2) }

Estaba buscando animar una vista de texto a la izquierda, a la derecha o al medio, según las preferencias del usuario. La newPosition es un CGPoint que CGPoint el texto. De todos modos, dividí las ecuaciones y, de repente, el autocompletado comenzó a funcionar y el ventilador se quedó en silencio. He podido recrear este problema específico más de una vez volviendo a escribir el código anterior y luego reemplazándolo por:

let halfFrameWidth: CGFloat = frame.width / 2 let middleLeft = (halfFrameWidth - mainFigureText.frame.width) / 2 switch doseType { case .right: newPosition.x = middleLeft + halfFrameWidth case .left: newPosition.x = middleLeft default: newPosition.x = (frame.width - mainFigureText.frame.width) / 2 }


Para mí estaba sucediendo en mi archivo de prueba, porque no era parte de un objetivo por alguna razón. Establecer su membresía objetivo resolvió el problema.


Para mí, el problema se produjo cuando descarté todos los cambios de un archivo (en Control de origen> Confirmar), que efectivamente eliminó el archivo. Esto es lo que quería y pensé que el archivo y todas las referencias a él también serían borrados.

Sin embargo, todavía había una referencia al archivo (que se muestra en rojo) en el navegador del Proyecto. Eliminar el archivo (ahora no existente) en el navegador de proyectos mágicamente trajo de vuelta la finalización automática.

No ayudó la cantidad de limpieza, eliminación de datos derivados, etc. Solo me di cuenta de que el archivo eliminado todavía se mostraba cuando intenté construir mi proyecto, lo que por supuesto falló porque no pudo encontrar ese archivo.

Espero que esto ayude a alguien a ahorrar 30 minutos :)


Parece ser un archivo específico en mi caso (Xcode 9.2) Para mí, la solución fue:

  1. Eliminar archivo de problema (eliminar referencia)
  2. Limpiar y construir
  3. Agregar archivo nuevamente al proyecto (no verifiqué los objetivos de prueba)
  4. Construir de nuevo

Finalmente, después de 3 horas de intentarlo todo, el autocompletado funciona como debería.


Problemas principalmente porque faltan ubicaciones de algunos archivos en el navegador de proyectos (errores de compilación)

  1. Presione el comando + 1 para abrir el panel del Project Navigator
  2. Compruebe si faltan archivos

O tu puedes:

  1. Eliminar DerivedData (comando + shift + K)
  2. Carpeta de compilación limpia (comando + shift + opción + K)
  3. Presione construir nuevamente (comando + B)
  4. Debería ver un error de compilación que Xcode no pudo encontrar algunos archivos que impiden que la herramienta de compilación procese la finalización automática.
  5. Corrija y repare los archivos que faltan que ve.

Espero que esto ayude


Tratar:

  1. Vaya a Xcode> Preferencias> Edición de texto
  2. En Finalización de código: desmarque ''Sugerir finalizaciones mientras escribe''
  3. Salga de Xcode y luego reinicie Xcode.
  4. Vaya a Xcode> Preferencias> Edición de texto nuevamente
  5. Salga de Xcode y luego reinicie Xcode.
  6. Ahora vaya a Finalización de código y marque ''Sugerir finalizaciones mientras escribe''.
  7. ¡Intenta escribir la función de biblioteca o enum y disfruta!

Tuve el problema con el 100% de autocompletado que no funciona, ninguno de los escritos aquí ayudó. Una cosa que noté fue que se rompió justo después de agregar algunas entidades al archivo .xcdatamodel, que tienen una definición de clase codegen de forma predeterminada.

Así que no me sorprendió cuando el uso de codegen none (y generando clases, por supuesto) solucionó el problema de inmediato, incluso sin reiniciar el xcode.


Use Command + B
o Command + R para compilar o ejecutar el proyecto
Xcode a veces se equivoca;)


Intenta hacer esto:

Seleccione el archivo >> verifique si el archivo se agrega a los objetivos de UITesting o UnitTesting (Inspector de archivos -> Membresía de destino) . Si es así, desmarque esos dos y asegúrese de que solo esté seleccionado el objetivo del proyecto. Luego compile e intente si el autocompletado funciona bien.

Esto funcionó para mí. Espero que ayude a alguien.