Xcode 8.2 La finalización del código no funciona
xcode8.2 (9)
La finalización del código también dejó de funcionar para mí en Xcode 8.2.1, y ninguna cantidad de limpieza, descarte de datos derivados o reinicio lo arregló. Después de un tiempo, me di cuenta de que la finalización del código solo estaba rota dentro del alcance de la extensión en la que estaba trabajando. Si se escribe manualmente, el código se resaltaría correctamente y se compilaría bien, por lo que no era un problema que la fuente descartara cualquier analizador que se encargara de completar el código.
Aquí está el contexto específico en el que sucede, en este ejemplo muy simple:
struct SomeStruct {
static let foobar1 = {
return NSBezierPath()
}()
}
extension SomeStruct {
static let foobar2 = {
return NSBezierPath()
}()
}
La finalización del código funciona bien dentro del bloque de implementación de
foobar1
, pero no para
foobar2
.
Es la presencia de un
static let
dentro de una extensión lo que parece desencadenarlo.
El problema aparece tanto para la estructura como para la clase.
Parece un error con Xcode, por lo que la única solución para mí fue mover
foobar2
a la definición principal de
SomeStruct
.
Por alguna razón, en Xcode 8.2 la finalización de mi código ha dejado de funcionar. Limpié mi producto, reinicié Xcode, reinicié mi computadora y eliminé los datos derivados, y todavía no tuve suerte. He enviado esto al Soporte de Apple. ¿Alguien se ha encontrado con esto antes y ha podido solucionarlo?
Lo que funcionó para mí fue eliminar datos derivados:
Preferencias de Xcode -> Ubicaciones -> el símbolo de flecha lo lleva a "Datos derivados" -> eliminar carpeta
Nada más funcionó para mí, pero este enfoque extraño sí:
- Salir de Xcode
- Vaya a su directorio de inicio, que si es como yo, está lleno de directorios vacíos con nombres basura
- rmdir * (siempre que deje las etiquetas desactivadas, esto matará solo los directorios vacíos, que es lo que desea)
- Lanzamiento de Xcode, tiempos felices nuevamente
Si tiene literales estáticos grandes, intente comentarlos. Esos a veces pueden tropezar con el compilador.
Simplemente limpie y compile su aplicación una vez en el
Generic iOS Device
, podría deberse a algún problema de tiempo de compilación, que deshabilita la inteligencia, veo este error desde Xcode 8.2.1.
Solo reiniciar Xcode funcionó para mí.
También he tenido problemas importantes con esto. Para mí, la finalización y el formateo del código se pierden en mi archivo fuente de trabajo actual cuando hago una compilación. Si regreso y cambio a una pestaña diferente y regreso, después de un segundo o dos, comienza a funcionar nuevamente. A veces, incluso eso no funciona y tengo que permanecer en la misma pestaña y abrir un archivo diferente y luego navegar hacia atrás.
Incluso esos métodos fallan si dejo Xcode abierto y apago la computadora durante unas horas y vuelvo. Cuando eso sucede, tengo que salir de Xcode, a veces forzarlo a salir, y luego, después de volver, seguir los pasos anteriores. Pero he tenido que perder el tiempo después de cada compilación o compilación y ejecución que hago. No he probado 8.3 beta todavía.
Tuve el mismo problema donde la "indexación" no funcionó. Como estaba usando un pod y bibliotecas estáticas. Lo que hice fue reconstruir las bibliotecas estáticas por separado.
Espero que esto ayude.
Actualización: según la solución @Dareon a continuación, también funciona para Xcode Versión 8.3 (8E162) y 8.3.2 (8E2002). Gracias, @Dareon por la confirmación. :)
Estaba enfrentando el mismo problema y seguir funcionó para mí.
Estoy usando Xcode Versión 8.2.1 (8C1002).
- Vaya a Xcode> Preferencias> Edición de texto
- En Finalización de código: desmarque ''Sugerir finalizaciones mientras escribe''
- Salga de Xcode y luego reinicie Xcode.
- Vaya a Xcode> Preferencias> Edición de texto nuevamente
- Salga de Xcode y luego reinicie Xcode.
- Ahora vaya a Finalización de código y marque ''Sugerir finalizaciones mientras escribe''.
- ¡Intenta escribir la función de biblioteca o enum y disfruta!
Al menos, funcionó para mí.