Pregunta Xcode 6 Error: clase desconocida en el archivo de Interface Builder


Actualicé a Xcode 6 beta 4 y ahora mi aplicación se cuelga continuamente con el mensaje

Clase desconocida X en el archivo de Interface Builder.

Se cuelga porque supuestamente Xcode no puede encontrar mis clases personalizadas que he vinculado en mi Storyboard, pero muestra que están vinculadas correctamente en la interfaz de Xcode.

Estoy seguro de que todo está vinculado correctamente. Mi única otra opción puede ser eliminar todo el archivo del guión gráfico y comenzar de cero porque podría estar dañado de alguna manera.

Editar: También me gustaría añadir que traté de limpiar, reiniciar el simulador, jugar con las fases de construcción, etc. Nada de eso funciona.


514
2017-07-24 04:09


origen


Respuestas:


Resolví este problema mientras escribía la pregunta. Pensé que respondería a mi pregunta y la dejo aquí para cualquier otra persona que pueda enfrentar este problema al usar Xcode 6 beta 4.

Para resolver este problema, debe seleccionar cada uno de sus objetos de clase personalizados en Storyboard (esto incluye cualquier vista personalizada, incluso los controladores de vista personalizados).

Luego, con esos objetos seleccionados, abra el inspector de identidad y en "Clase personalizada" debería ver la opción Módulo. Haga clic dentro del cuadro de texto Módulo y presione enter.

¡Eso es! El módulo actual para todos mis objetos personalizados debe haberse configurado incorrectamente de forma interna en Xcode 6 beta 4. Pero no había una indicación visual de esto en el inspector.

Tenga en cuenta que si al pulsar Intro dentro del cuadro de texto Módulo no funciona, intente seleccionar la flecha a la derecha y seleccione manualmente su módulo actual, luego borre el cuadro de texto y presione enter. También puede intentar presionar enter dentro del cuadro de texto de la clase (aunque esto generalmente es para resolver un problema diferente).

Aquí hay una imagen para aclarar las cosas: enter image description here


1279
2017-07-24 04:09



A veces Xcode se perdió customModule="AppName" customModuleProvider="target" 

Para solucionarlo, abra el guión gráfico como código fuente y reemplace esta línea:

<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass"
sceneMemberID="viewController">

a esto:

<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass"
 customModule="AppName" customModuleProvider="target" sceneMemberID="viewController">

93
2017-11-30 16:04



Tuve este problema después de cambiar el nombre de una clase rápida. Lo resolvió usando la directiva @objc:

@objc(ForumTopicListViewController) class ForumTopicListViewController

65
2017-09-29 20:47



Esto funcionó para mí ...

Verifique su fuente compilada, ya sea que ese archivo (por ejemplo, ViewController.m) se haya agregado o no, en mi caso no se agregó el archivo ViewController, por lo que me dio el error.

enter image description here


51
2018-04-06 09:46



Esto puede suceder en cualquier Xcode por encima de 6.0. Me pasó después de cambiar el nombre de algunas clases de ViewController en el proyecto Swift (pero supongo que sucederá con Obj-C también). Solo tiene que abrir el constructor de interfaz, ir al Inspector de Identidad de ViewController que tuvo su clase renombrada, seleccionar clase y presionar Enter. Eso reasignará la clase renombrada a ViewController seleccionado y también restablecerá Module Value, que se pierde después de cambiar el nombre de la clase.

Actualización para Xcode 8.1 (probablemente 8.0 también):

Xcode 8.1 simplemente se bloquea. Simplemente y molestamente solo se bloquea y no imprime nada. Estuve persiguiendo ese accidente fantasma durante una hora solo para descubrir que era lo mismo: clase no asignada en IB. Si tienes algunos bloqueos fantasma, primero revisa IB para ver si hay clases sin asignar.


42
2018-01-08 15:02



A veces, el controlador que está proporcionando pierde su membresía objetivo de la aplicación actual. En ese caso, presionar Enter en el campo "Módulo" no hará nada. Dirígete al controlador y asegúrate de que tenga una membresía objetivo establecida en la aplicación actual.


31
2017-12-31 21:02



Mi respuesta: establezca el Módulo personalizado igual al nombre del Pod personalizado (en mi ejemplo - nombre de clase personalizado) como en la captura de pantalla adjunta

Esta solución es para un caso específico: para personalizado puntos de vista clases de Vaina (o Cartago) marco de referencia.

Infraestructura: XCode8, Swift3

enter image description here


22
2018-03-13 06:08



Proyecto con objetivos múltiples

En mi caso, estoy trabajando en Project with Multiple Targets y el problema fue "inherit from Target" (Herencia de Target) sin marcar. Seleccionar "heredar del objetivo" resolvió mi problema

enter image description here


21
2017-11-08 05:43