Xcode 9 Autocomplete no funciona al 100% - Funciona parcialmente


121

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

ingrese la descripción de la imagen aquí


1
Eliminar la carpeta de DATOS DERIVADOS me solucionó. Gracias a otra publicación. Gracias a esta publicación: stackoverflow.com/questions/28429630/…
Ernie

Probablemente se deba a que la indexación aún no se ha completado.
ozgur

1
Probé todas las soluciones propuestas y nada ayudó con uno de mis proyectos 🙁
Alexander Vasenin

3
11.3 es un desastre con respecto a este tema. A menudo, el simple hecho de reiniciar Xcode ayuda: /
Fattie

Respuestas:


233

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. ¡Intente escribir la función de biblioteca o enumeración y disfrute!

2
impresionante solución. tan raro. Me pregunto cómo replicaste esto.
Kunal Gupta

1
Respuesta de un millón de dólares. Esto incluso corrigió "Saltar a la definición".
OutOnAWeekend

Todavía es necesario en Xcode 11.2, gracias por este extraño truco de vida :-)
Rocket Garden

Este es un error en Xcode ya que siempre nuevas actualizaciones crean nuevos problemas, la solución de trabajo para mí es: 1- Bastante Xcode. 2- espera unos segundos. 3- Abre Xcode pero no toques nada ni siquiera haciendo clic en algún lugar del editor. 4- Espere hasta que finalice la indexación. Autocompletar funciona ahora.
Shahriar

1
Todavía es necesario en XCode 11.5, Catalina, julio de 2020. ¡Muchas gracias!
Reuben Scratton


30

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é

Limpiar el proyecto -> Cmd + Shift + K

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

Si omitió el paso uno:
Eliminar datos derivados
Xcode Preferences-> Locations->
Símbolo de flecha Lo lleva a DerrivedData-> Eliminar carpeta


3

Compruebe las fuentes de compilación de su fase de compilación.

Todos los archivos .swifty .mdel proyecto deben estar en esta lista o no se completarán automáticamente en esos archivos.


4

Optimiza tu editor:

Utilice 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 Type Inferance cuando el resultado sea un cálculo complejo e intente dividir los cálculos complejos en let this = smallerOperationdeclaraciones


Con XCode 9.2 ya no hay un símbolo de flecha en la carpeta de datos derivados. Gracias por el consejo de fileprivate. La pesadilla continúa ...
Sal

Todavía veo el símbolo de la flecha. ¿Fue esto en una versión anterior de 9.2 o algo así?
Sethmr

28

Xcode versión 11.0 (11A420a)

Probé la solución de Lal KrishnaProbé para Xcode V11.0. Funcionó algunas veces, pero luego no obtuve ningún resultado.

Encontré una solución. Debes eliminar dos archivos:

  1. Biblioteca / Desarrollador / Xcode / Datos derivados (como se describió anteriormente)
  2. Biblioteca / Desarrollador / Xcode / UserData / IDEEditorInteractivityHistory

Esa solución me ayuda ahora. Puede ser útil para otros 😉


3
trabajó para mi. Solo quiero decir que Visual Studio 2002 (!) Fue mejor que Xcode 2009-2019. Todos estos años, Xcode tiene tantos errores. No entiendo por qué Apple no se preocupa por los desarrolladores. ¡Xcode hecho por desarrolladores! (Tuve que sacarlo)
user1105951

Eso funciona para mí: Salga de Xcode, elimine 2 carpetas como dijo, reinicie Xcode y todos los problemas desaparecieron: D
phuongzzz

20

Esto puede suceder cuando el archivo no es miembro de Target. Abra el archivo donde la función de autocompletar no funciona y muestre la pestaña "Utilidades" en la parte superior derecha de Xcode (azul en la captura de pantalla a continuación). Captura de pantalla de los botones de vista superior derecha de Xcode

Captura de pantalla de las opciones de membresía de Xcode Target

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

Si ya está marcado, asegúrese de desmarcarlo y volver a marcarlo. Para mí, funcionó.


solo abrir esa página y cerrar funcionó. Estoy confundido. Gracias por cierto.
Okhan Okbay

Funcionó en xcode 10. El archivo ya era miembro del objetivo. Tuve que desmarcar y luego verificarlo nuevamente para que se reconociera como tal.
Jim75

esto me sucedió después de la fusión de git. Supongo que una rama escribió sobre mi archivo de proyecto actual y la otra no se fusionó correctamente con eso.
Asfand Shabbir

11

Estoy usando Xcode 10.2 y tuve el mismo problema.

Esta respuesta de axel me ayudó a solucionarlo.

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

  1. Vaya a YourProject.xcodeprojhaciendo clic con el botón derecho del ratón y abraShow Package Contents
  2. Vaya a xcuserdatay elimine suyouruser.xcuserdatad

Si también tiene el xcworkspace(si ya tiene algún módulo instalado), realice los pasos 3 y 4, si no, omita los pasos 3 y 4:

  1. Vaya a YourProject.xcworkspacehaciendo clic con el botón derecho del ratón y abraShow Package Contents
  2. Vaya a xcuserdatay elimine suyouruser.xcuserdatad

  3. Salir de Xcode

  4. Eliminar datos derivados usando Terminal:

rm -rf ~ / Biblioteca / Desarrollador / Xcode / DerivedData

  1. Abre Xcode y comprueba si funciona.

ingrese la descripción de la imagen aquí


11

Esto también puede suceder si asignó un nombre redundante a sus archivos. Por ejemplo,

Data.swift

Data.swift


1
En mi caso, este fue el problema, tengo el mismo nombre de archivo en 2 carpetas diferentes
Raj

Esto también me pasa a mí. Dos archivos ViewController
Shark Deng

1
En mi caso, tenía un grupo virtual llamado ABC y un archivo dentro de ese grupo llamado ABC.swift. Cambiar el nombre del archivo solucionó esto. Gracias
Rem-D


5

Intente hacer esto:

Seleccione el archivo >> compruebe si el archivo se ha agregado a los destinos 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 y pruebe si la función de autocompletar funciona bien.

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


4

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


4

Aquí hay una pequeña solución, pero funciona.

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

  2. Limpiar 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. Cierre XCode.

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

Una vez que haya terminado con la construcción, las sugerencias estarán de vuelta. Lo he probado dos veces.

Actualizar:

A veces, el problema puede ser tan simple como duplicar nombres de archivos. Verifique cuidadosamente si algún nombre de archivo nuevo agregado por usted está en conflicto con archivos más antiguos.

En Xcode 11.4, incluso si mueve un archivo existente a otro grupo, las sugerencias desaparecen. Esto se puede solucionar simplemente reiniciando Xcode.


3

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


2

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 marcar la diferencia.

Me di por vencido y descargué la prueba de 30 días de AppCode de Jet Brains. Autocompletar funcionó bien allí y esto tal vez sea una coincidencia, pero luego comenzó a funcionar nuevamente en mi proyecto en Xcode. No puedo garantizar que seguirá funcionando ...


"otro vudú sugerido" lol - muy bien dicho ... perdemos tanto tiempo buscando soluciones para los errores de Apple, pero dejé de quejarme de xcode cuando comencé a usar Android Studio
JohnV

2

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

  1. Eliminar archivo problemático (eliminar referencia)
  2. Limpiar y construir
  3. Vuelva a agregar el archivo al proyecto (no verifiqué los objetivos de prueba)
  4. Construir de nuevo

Finalmente, después de 3 horas de probar todo, la función de autocompletar funciona como debería.


2

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

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

O tu puedes:

  1. Eliminar DerivedData (comando + Mayús + K)
  2. Limpiar carpeta de compilación (comando + shift + opción + K)
  3. Presione construir nuevamente (comando + B)
  4. Debería ver un error de compilación que indica que Xcode no pudo encontrar algunos archivos que impiden que la herramienta de compilación procese el autocompletado.
  5. Corrija y repare los archivos faltantes que vea.

Espero que esto ayude



2

Para Xcode 11.4 (11E146)

La barra inclinada invertida en el nombre de la carpeta rompe la función de autocompletado. Si este es el caso, elimínela y compile nuevamente.

ingrese la descripción de la imagen aquí


1

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.


1

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

Sin embargo, todavía había una referencia al archivo (mostrado en rojo) en el navegador de proyectos. Eliminar el archivo (ahora inexistente) en el navegador de proyectos devolvió mágicamente la finalización automática.

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

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


Vea mi respuesta por la razón.
James Bush

@ponury, no lo entiendo ... El segundo párrafo de OP es una solución, ¿no?
brasofilo

1

Usar Command + B
o Command + R para construir o ejecutar el proyecto
Xcode a veces se estropea;)


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

1

Mi caso puede parecer demasiado específico para ayudar, pero podría darle a alguien una idea de cómo resolver el autocompletado defectuoso. Xcode 10.2.1.

En mi caso, la función de autocompletar 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 hacía más ruido, lo que indicaba que algo estaba funcionando en exceso (no se estaban ejecutando otras aplicaciones), debe tenerse en cuenta que estaba editando en una computadora portátil MacBook Pro. Parecía estar vinculado con el editor que luchaba 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. El newPositiones un al CGPointque se animará 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 al volver a escribir el código anterior y luego reemplazarlo con:

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
 }

1

Me gustaría agregar una más a la pila de soluciones, porque es la única que funcionó para mí y no se encuentra en ninguna parte aquí.

Xcode normalmente viene con dos configuraciones de compilación predeterminadas para cada proyecto. Release& Debug. Tengo uno adicional para mis pruebas unitarias llamado Testing. En Xcode 10.1, 10.2, 10.3 y 11 beta, al nuevo sistema de compilación no parece gustarle y solo se completará automáticamente si usa Releaseo Debug. Cualquier configuración de compilación personalizada rompe la finalización automática en proyectos mixtos (swift + objc) con pruebas unitarias.


0

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

ingrese la descripción de la imagen aquí


0

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


0

Tuve el problema de que el 100% no funcionaba de autocompletar, nada de lo escrito aquí ayudó. Una cosa que noté: se rompió justo después de agregar algunas entidades en el archivo .xcdatamodel, que tienen una definición de clase codegen por defecto.

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

ingrese la descripción de la imagen aquí


0

Con Xcode 11.1, simplemente realizar Clean Build Foldero eliminar datos derivados no fue suficiente para corregir el autocompletado.

Solo después de reiniciar mi Mac , todo volvió a la normalidad


0

Si tiene problemas con la finalización extraña / autocompletado / intellisense (no muestra cosas predeterminadas como delegados y métodos de protocolos de fuente de datos) simplemente cambie su objetivo (por ejemplo, del simulador de iPhone 8 al dispositivo real), cree el proyecto y vuelva a su objetivo original .

Similar con los problemas con Interface Builder (guiones gráficos) que no muestran nada, pero solo "nada seleccionado" cada vez que selecciona cualquier parte de la vista. Simplemente cambie a otro Xib / Storyboard (o incluso cree uno nuevo), verifique si funciona allí y vuelva a cambiar.

Estas soluciones funcionaron para mí en ambos casos (tuve ambos problemas en un día con un proyecto en Xcode 10.2.1). Por lo que he visto en todos los foros de Internet, parece que estos son errores que nunca se han solucionado desde Xcode 6.xo así.

¡Salud!


0

En mi caso (Xcode 11.1), sucedió cuando detuve la autoindexación de Xcode con este comando defaults write com.apple.dt.Xcode IDEIndexDisable -bool true.

Así que lo enrollo con defaults write com.apple.dt.Xcode IDEIndexDisable -bool false. luego reinicie macOS y vuelva a ejecutar Xcode.


0

Tuve el mismo problema con Xcode 11.3. Nada de lo anterior no ayudó, resultó que tenía errores de compilación. Simplemente corrija los errores de compilación y el autocompletado funcionará nuevamente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.