ios - mac - xcode online
"No se pudo encontrar ninguna informaciĆ³n para la clase llamada ViewController" (30)
Acabo de tener este problema en abril de 2017 con XCode 8
Simplemente creando una salida a través del código y compilando la corrigió. p.ej:
@IBOutlet weak var containerViewHeight: NSLayoutConstraint!
Tienes que amar XCode ...
Editar: todavía sucede en XCode 9
Este error me ha estado volviendo loco desde que comencé a usar Xcode (4.6.3). Cada vez que trato de vincular un elemento Storyboard a mi código, aparece el error "No se pudo encontrar ninguna información para la clase llamada ViewController". Esto sucede con clases personalizadas también. Intenté eliminar los datos de los delegados, intenté eliminar y volver a agregar las clases, intenté reiniciar Xcode, intenté reinstalar Xcode. No puedo presionar Ctrl para crear conexiones en ninguno de mis proyectos sin importar la clase. El mismo problema ocurre con una nueva aplicación de plantilla. Si escribo el código manualmente y luego presiono Ctrl y arrastre, puedo establecer una conexión funcional, pero no puedo agregarlo automáticamente. Nada de lo que he podido encontrar hasta ahora en Internet me ha ayudado. ¿Alguna sugerencia?
Borre los archivos (solo las referencias) y agregue los archivos nuevamente.
Bueno, en mi caso, lo que funcionó (es un poco extraño, pero funcionó) es el siguiente:
Intente agregar un origen de datos (por ejemplo, una extensión al ViewController como un UITableViewDataSource). Xcode intentará volver a cargar ViewController. Luego escribí algún método del protocolo (al principio, Xcode no autocompletaba los métodos, pero los escribía manualmente), luego añadí los IBOutlets y, finalmente, eliminé el origen de datos.
Ejemplo:
class TestViewController:UIViewController{
// This viewController presents “Could not find any information for class named ViewController”
}
extension TestViewController:UITableViewDataSource{
//Add Some methods of the protocol, Xcode will try to autocomplete and then it''s going to reload the class, from then you can add your IBOulets / Actions .. And remove this extension if you don''t need it otherwise.
}
Bueno, los chicos vieron casi todas las respuestas principales y ninguna funcionó para mí.
Entonces, ¿qué funcionó para mí?
- Copie la dirección de
Derived Data
de su proyecto XCode. Esto se puede hacer usando lo siguiente:
Xcode -> Preferences -> Location Tab -> Derived Data
Close Xcode
Ahora vaya a la ubicación de datos derivados y elimine la carpeta de su proyecto allí.
Ahora abre Xcode y Voila !!!
Como comenté en la respuesta de @ ChrisHarrison, esas cosas no funcionaron para mí, pero al eliminar los datos derivados obtuve que funcionara eliminando los datos derivados como en https://.com/a/16182672/1449799
Como experiencia de prueba, si eliminas una clase que estaba asociada en Xcode y luego añades el archivo nuevamente, este problema ocurrirá.
Compruebe desde el buscador xcode si está cerrado o no. Fuerza salir de xcode y reiniciar. Producto> Limpio
En algún momento, Xcode se debe a que VC no hace referencia al archivo de clase. La solución simple para esto es:
escriba la propiedad manualmente como se indica.
class YourClassName{
@IBOutlet weak var YourTableName: UITableView!
}
Esto hará un signo de enlace vacío antes de @IBOutlet , abra su proyecto en el editor asistente y luego haga clic en el signo de enlace y arrastre hacia la Vista que desea conectar (me he conectado con TableView). y eso es. Disfruta de Happy Coding !!!
En caso de que alguien todavía esté frustrado por esto, hay un truco para que las cosas funcionen.
Lo que hago es ingresar manualmente una salida en mi clase, por ejemplo: @IBOutlet weak var someView: UIView!
y arrastre desde el código a la vista en IB o guión gráfico. Después de esto, puedo arrastrar desde IB / Storyboard a mi clase para hacer las conexiones, los editores asistentes reconocen la clase en "Automático", etc.
Funciona todo el tiempo.
En mi caso, fue porque el proceso de indexación de XCode había dejado de ejecutarse. Reiniciar la mac lo solucionó.
Este es el paso MÁS FÁCIL que hice para solucionar este problema.
- Limpio el proyecto
- Arrastre un nuevo botón en el controlador de vista.
- Construye el proyecto.
- Conecte el botón recientemente arrastrado a la clase (salida o acción).
- Entonces voila !!! ¡Ahora se pueden conectar otros puntos de venta a la clase!
Intenté todas estas respuestas, el problema para mí estaba relacionado con el hecho de que Xcode no podía indexar los archivos. Lo arreglé simplemente saliendo de Xcode y volviendo a abrir el proyecto. Por supuesto que lo hice después de probar todas las soluciones anteriores: p
Intenté todo y no funcionó, así que para mí lo que funcionó fue:
- Carpeta y proyecto Clean Build.
- Proyectos abiertos (Ventana -> Proyectos)
- Encuentre su proyecto en la lista y elimine los datos derivados
- Cerrar XCode
- Reiniciar la computadora (sin tener que volver a abrir las ventanas que están abiertas)
- ejecutar XCode
- ¡Trabajo!
Todos mis controladores de vista no estaban siendo reconocidos, por lo que eliminar todos los archivos y volver a agregar no era una opción, ya que este es un gran proyecto.
Intentaría rehacer los archivos .m y .h en cuestión y darles un nombre original, no genérico como "ViewController". Pruebe algo más en la línea de lo que quiere que haga ese archivo y finalice en View Controller (es decir, "PizzaDecoraterViewController")
Luego seleccione ViewController que quiere conectar a esos archivos. Asegúrese de seleccionar ViewController, no solo un objeto dentro. Haga clic en la barra negra en la parte inferior (la que tiene los íconos "Primer Respondedor" y "Salir"). El ViewController completo debe ser azul. Luego, vaya a la sección Clase personalizada en el Inspector de identidad y verá un "Controlador UIView" en gris en el primer campo. En ese campo, escriba el nombre del archivo .h o .m al que desea que se conecte (Comience a escribir PizzaDecorator ... y debería hacer un poco de autocompletar). Luego presiona ENTER.
Cuando abra el Editor Asistente, asegúrese de que el archivo que está tratando de arrastrar y soltar es, de hecho, el archivo correcto.
Si ha hecho todo lo dicho anteriormente, entonces debería funcionar.
Lo que funcionó para mí fue, en lugar de arrastrar la conexión del botón al código, fue:
- Al hacer clic en el elemento del guión gráfico deseado.
- Apertura del inspector de conexión (panel derecho)
- Arrastrando desde el círculo + al área de código. Al igual que:
después de vincular mi código de esta manera, funcionó normalmente a partir de entonces.
Lo que resolvió este problema para mí fue en realidad eliminar la clase del proyecto.
Pasos:
- En el explorador de archivos del proyecto (panel izquierdo) encuentre la clase y haga clic con el botón derecho -> Eliminar
- Elimine la referencia (no se mueva a la papelera ya que perderá la clase para siempre)
- Haga clic con el botón derecho en la carpeta que contenía la clase -> Agregar archivos a ...
- Encuentra la clase que acabas de eliminar en el sistema de archivos
Esto parece forzar a Xcode a vincular la clase de nuevo al guión gráfico.
Nota: para mí lo siguiente no funcionó:
- Cerrando Xcode
- Limpiando el proyecto
- Eliminar el nombre de clase del guión gráfico y volverlo a ingresar
Creo que esto es un error en la parte de Apple
Ninguno de los pasos anteriores funcionó para mí, pero creo que pude haber descubierto el problema. Al menos es lo que funcionó para mí, y no es un error en Xcode.
Cuando esté en el editor asistente, mire la parte superior de la ventana que tiene el código para su viewController. La tercera opción de la derecha probablemente dice "Manual", pero debería decir "Automático". Una vez que cambié esto, ¡el problema se resolvió!
Para mí, el constructor de interfaces no pudo compilar la vista para la que había especificado una clase personalizada. Fue marcado @IBDesignable
.
Al eliminar @IBDesignable
, y luego agregar mis salidas, y luego marcarlo como @IBDesignable
resolvió el problema en mi caso.
Para mí, lo siguiente funcionó:
Haga una ''limpieza'' y una ''carpeta de creación limpia'' (presione ''opción'' en el menú Producto para obtener el comando ''limpiar carpeta de compilación''
Detener XCode
En la terminal, ve a la carpeta de datos derivados:
(/ Usuarios // Biblioteca / Desarrollador / Xcode / DerivedData)
Elimine el directorio de datos derivados para su proyecto.
Ola pollo muerto en el aire
Comience XCode
Por lo general, cuando esto me pasa, aún no he guardado el código de la clase. Simplemente vaya al código y presione cmd + sy con frecuencia soluciona el problema de la manera correcta.
Producto> Clean (Command - Shift - K) lo arregló para mí!
Seleccione ViewController en storyBoard, elimine el valor actual en el panel derecho / "Clase de cliente" / "clase" y luego vuelva a agregar la clase de control (escriba: "SampleViewController" ...), intro. -> Eso me funciona
Si la gente prueba lo anterior y las cosas aún no funcionan, el extraño truco que funcionó para mí fue agregar la salida en un pedazo de espacio en blanco. Funciona si no hay otras líneas directamente encima o debajo de la línea que está agregando. Extraño, pero funcionó!
Solo intente eliminar datos derivados para el proyecto
Solo necesito limpiar y reconstruir el proyecto.
Tenía que hacer una combinación de un par de respuestas hasta ahora:
- Elimine el nombre de clase personalizado del guión gráfico.
(Haga clic en el botón amarillo en la parte superior izquierda del controlador de vista en el guión gráfico -> vaya al inspector de identidad (opción + comando + 3) -> elimine el nombre de clase personalizado en la parte superior)
- Elimine la referencia al archivo del controlador de vista.
(Haga clic con el botón derecho en el archivo -> eliminar -> eliminar referencia)
- Agregue el archivo de controlador de vista al proyecto.
(Haga clic con el botón derecho en la carpeta donde estaba el archivo -> "Agregar archivo a [proyecto]")
- Agregue el nombre de clase personalizado al guión gráfico.
Vaya a la carpeta del proyecto y elimine la carpeta de datos derivados
si no puede encontrar los datos derivados, vaya al buscador y vaya a
~/Library/Developer/XCode/DerivedData/"project"
(reemplace el nombre de "proyecto" por el nombre del proyecto)
los siguientes pasos me funcionan, espero que también te sirvan
1- Necesitas reabrir tu proyecto después de cerrar Xcode.
2- Esperar a indexar los archivos del proyecto
3- Comprobar si funciona o no
4- Si aún no funciona sigue el paso 5, si no es feliz para ti :)
5- Limpia y crea tu objetivo de proyecto
solo prueba esto
rm -rf ~/Library/Caches/com.apple.dt.Xcode
defaults delete com.apple.dt.Xcode IDEIndexDisable
defaults write com.apple.dt.Xcode IDEIndexEnable 1