Aunque el Interface Builder es consciente de un MyClass, me sale un error al iniciar la aplicación.

Esto sucede cuando MyClass es parte de una biblioteca, y no sucede si puedo compilar la clase directamente en la aplicación de destino.

  • ¿Cómo se puede vincular a la biblioteca?
  • Yo uso un dependiente del subproyecto, y lo hizo de una operación de arrastrar y soltar desde el Xcode subproyecto productos en mi objetivo actual del «Vínculo Binario Con la Biblioteca de la» fase de construcción.
  • Si la clase es de CocoaPods, esto podría ayudar a los github.com/CocoaPods/CocoaPods/issues/491.
  • Podría estar relacionado? stackoverflow.com/a/24924967/511299

46 Comentarios

  1. 218

    A pesar de la «Desconocido de la clase Miclase en el Interface Builder archivo.» error impreso en tiempo de ejecución, este problema no tiene nada que ver con el Interface Builder, sino más bien con el enlazador, que no es la vinculación de una clase, ya que no utiliza código de ella directamente.

    Cuando el .la plumilla de datos (compilado de las .xib) se cargan en tiempo de ejecución, MyClass se hace referencia mediante una cadena, pero el vinculador no analizar la funcionalidad de código, código existencia, así que no sé. Ya que no hay otros archivos de origen de las referencias de esa clase, el enlazador optimiza la existencia de al hacer el archivo ejecutable. Así que cuando Apple código intenta cargar una clase, no puede encontrar el código asociado con él, y se imprime la advertencia.

    Por defecto, Objective-C, los objetivos se han -all_load -ObjC indicadores establecidos por defecto, que se mantenga a todos los símbolos. Pero yo había empezado con C++ destino, y no tienes que. Sin embargo, he encontrado una forma de evitar esto, lo que mantiene el enlazador agresivo.

    El hack yo estaba usando originalmente era para agregar un vacío estático de rutina como:

    +(void)_keepAtLinkTime;

    que no hace nada, pero a los que yo llamaría la vez, tales como:

    int main( int argc, char** argv )
    {
       [MyClass _keepAtLinkTime];
       //Your code.
    }

    Esto obligaría a que el vinculador para mantener a toda la clase, y el error desaparece.

    Como jlstrecker señaló en los comentarios, que realmente no necesitamos agregar un _keepAtLinkTime método. Simplemente llamando a uno ya existente, tales como:

       [MyClass class];

    hace el truco (siempre que se derivan de una NSObject).

    Por supuesto, usted puede llamar en cualquier lugar de su código. Supongo que incluso podría ser en código inalcanzable. La idea es engañar al enlazador en el pensamiento de que MyClass se utiliza en algún lugar, así que no es tan agresivo en la optimización de fuera.

    Xcode 6.3.2 & Swift 1.2

    Swift definición de la vista. Asegúrese de reemplazar init(coder aDecoder: NSCoder). Objective-C la definición de la vista controlador. Y, una punta en un árbol de pera.

    Agregar el Nombre del Módulo a Punta detalles de inspector en la que escoja su clase.

    • El .xib datos no se cargan en tiempo de ejecución. El IB compilador compila el xib a una punta; la punta es lo que se cargan en tiempo de ejecución.
    • Buen punto. He editado mi respuesta en consecuencia.
    • Usted no tiene que modificar MyClass. Acabo de llamar a un método del que se hereda NSObject, como +class.
    • A pesar de que no era Xcode 4 cuando la pregunta original fue publicado, el siguiente todavía parece ser apropiado. En Xcode 4, en lugar de añadir algo de ficticio método para eliminar el error, usted puede comprobar todos los objetivos de MyClass.m en el Destino de la Membresía de la sección de el Inspector de Archivo.
    • Otra posibilidad en estos días es que Miclase.m podrían no estar en su Compilar las Fuentes de la fase de construcción. Esto puede suceder si usted arrastre de Miclase.h/m en su proyecto, en lugar de la creación de ellos usando el Nuevo Archivo.
    • Eso es exactamente lo que fija para mí Steven. La adición de las clases para la Compilación de las Fuentes fase de construcción la ordenó.
    • Para mí, [de la clase MyClass]; funciona, Pero arrastrando .m archivo compilado de fuentes y la comprobación de los objetivos en el Destino de las membresías no funciona. Estoy usando XCode 4.5 aunque.
    • la mía también, ya está en compilado de fuentes y objetivos, pero todavía se estrellan, llamando [de la clase MyClass] justo antes de [NSBundle loadNibNamed:@»xibname»]; funciona de maravilla
    • Xcode5 todavía tiene este error: nuevos objetivos a VECES se crean sin el «-ObjC» opción en «otros enlazador». Grr. Pero «-all_load» ya no es necesario – que (por fin) se ha corregido ese error.
    • Ah Xcode…siempre es útil para los mensajes de error.
    • Actualizado para Xcode 6.3.2 y Swift 1.2 después de correr en el mismo problema. Saludos
    • puede usted explicar la rápida solución? Yo realmente no lo entiendo.
    • Tengo este problema en un ObjectiveC++ archivo, con .mm de extensión. Gracias por la corrección!
    • Mismo error cuando se utiliza una clase de biblioteca estática – corregido, ¡gracias!
    • Me ayudó mientras se hace referencia clase personalizada de xib encuentra en un Paquete de destino
    • Muchas gracias! Yo tenía el mismo problema (Xcode 8.2.1) y su solución (referencia directa a la clase dependiente) se corrigió. Me fui tan lejos como para usar objdump para confirmar que con(sin) la revisión, la aplicación binaria hizo(no) tiene una referencia a la clase dependiente.
    • Por fin alguien explica por qué esto está pasando en lugar de apuntar a IB.

  2. 183

    He arreglado esto a lo largo de las líneas de lo que Laura sugerido, pero no tuve necesidad de volver a crear los archivos.

    • Con XCode 4, en el Navegador de Proyectos, seleccione el .m archivo que contiene la clase a la que se está quejando de

    • Ir a Ver->Servicios>Mostrar Inspector de Archivo
      (esto mostrará el Inspector de Archivo a la derecha, con que .m-file info)

    • Abrir el Objetivo de Pertenencia sección y asegúrese de que su objetivo se ha seleccionado para este .m-archivo

    Cuando he añadido a mi .m archivo de mi proyecto, que no lo agregue a mi destino predeterminado por alguna razón y eso me llevó a obtener el error que usted ha mencionado.

    • Es cierto que a veces, el error del vinculador es debido a que simplemente no se compila el archivo en su destino en el primer lugar. Lo que usted describe es la forma de controlar el destino de la(s) que un archivo está asociado. Por desgracia, mi archivo ya era parte de mi destino, pero yo todavía tenía un vínculo problema. Esto fue probablemente debido a mi biblioteca de C++ (como opuesto a Objective-C), que tiene diferentes defecto del enlazador (ver posts por Alasdair Allan y Sijo arriba).
    • Esta sugerencia trabajado para mí, aunque de forma ligeramente diferente, ya que mi Objetivo «de Pertenencia» casilla de verificación ya estaba marcada. Yo desactivada y re-construido, pero, a continuación, el mensaje de error cambia para indicar el nuevo nombre de la clase. Volver a marcar la casilla y construir de nuevo, ahora todo funciona. Mucho más fácil de eliminar archivos de caché!
    • Gran solución a través de Xcode interfaz de usuario. @electromaggot, Xcode puede confundir al agregar clases de forma manual, por lo que usted puede necesitar agregar más de un archivo.
    • Esta es la solución para mí. Me había arrastrado en algunos archivos de clase de otro proyecto, y los archivos de clase fueron los que plantearon la excepción.
    • He borrado un archivo desde mi proyecto, a continuación, agrega el mismo archivo de nuevo más tarde y ya esta resuelto el problema.
    • Exactamente lo que yo necesitaba. Esta es la respuesta correcta para mí. Me había arrastrado este archivo en el proyecto y yo recuerdo haber visto una pregunta «Agregar a este Destino….» y sólo las «Pruebas» fue seleccionado. No amanecer en mí lo que yo había hecho hasta que empecé a tener este error. En ese momento yo no podía entender cómo corregir original de mi metedura de pata. La idea de engañar a los enlazador podría funcionar pero lo que es una pesadilla.
    • Salvaste mi vida. Tuve que volver a mi archivo de proyecto y volver a agregar los archivos de origen y nada estaba trabajando más. Estúpido xCode no haciendo su trabajo!!! Gracias.
    • Creo que esto es mejor que el marcado actualmente respuesta usando la última versión de Xcode versiones. Esto funcionó para mí el uso de Xcode 6.1.

  3. 68

    Esto en realidad no tiene nada que ver con el Interface Builder, lo que ocurre aquí es que los símbolos no están siendo cargados desde la biblioteca estática por Xcode. Para resolver este problema, debe agregar el -all_load -ObjC banderas a la Other Linker Flags clave del Proyecto (y posiblemente la de Destino) Configuración de generación.

    Desde Objective-C sólo genera un símbolo por clase se debe forzar el conector para cargar los miembros de la clase también por el uso de la -ObjC bandera, y también debemos forzar la inclusión de todos nuestros objetos de nuestra biblioteca estática mediante la adición de la -all_load enlazador de la bandera. Si usted se salta estos indicadores tarde o temprano se va a ejecutar en el error de unrecognized selector o conseguir otras excepciones como la que usted ha observado aquí.

    • He encontrado que sólo el -ObjC bandera solo se fija en mi caso.
    • eso es porque la versión de Xcode (LLVM) es más reciente que el tipo de escritura de esta respuesta había utilizado. Hoy en día, el uso de -ObjC es suficiente para arreglar el problema.
    • esto sólo me ayudó. Durante la compilación se mostró marco necesario cuestiones relacionadas con la cual se resuelve una vez he importado todos los marcos.
    • -ObjC bandera solo solucionado mi problema. De hecho, me dieron error por haber all_load atributo en iOS7.
    • El uso de -all_load -ObjC podría causar aumento innecesario en el tamaño del producto. esta cuestiones que sucede con la categoría archivos demasiado en los marcos de sólo.
  4. 26

    Lo hice correr en este problema hoy en día el uso de Swift.

    He cambiado una clase Model.h + Model.m a un Model.swift.
    Este objeto se utiliza en el Interface Builder con el class = Model.

    Tan pronto como he sustituido el objeto de la clase ya no podía ser cargado.

    Lo que tenía que hacer era cambiar la referencia de la clase en IB desde:

    Class = Model
    Module = 

    a

    Class = Model
    Module = <TARGETNAME>

    Usted encontrará la <TARGETNAME> en la configuración de generación. También es el nombre que se muestra en su generados Swift-Encabezado: #import "TARGETNAME-Swift.h"

    • Esta parece ser la respuesta correcta. A menos que alguien diga lo contrario, este debe ser marcada como correcta.
    • Gran respuesta gracias. Para mí el Module nombre estaba ahí en el menú desplegable. Era el nombre de mi aplicación.
    • A mí me funciona. Para mi problema, el <TARGETNAME> mencionó en su respuesta, es el marco de nombre que contiene la clase.
    • Llegué a la conclusión de que en mi propio este también fue el error que estaba recibiendo y que estaba dispuesto a publicar mis resultados cuando vi tu post. En realidad lo vi pero se la pasó por, a causa de las muchas respuestas y el ruido a su alrededor. Creo que su respuesta podría ser mejorada con algunas capturas de pantalla para diferenciar su respuesta de los demás. Me gustaría asegurarse de contraer si no fuera así. Muchas gracias, de todos modos, para publicarlo aquí. Tienes mi upvote.
    • Para el AppDelegate, yo era capaz de solucionar este problema en el Generador de Interfaz de interfaz de usuario. Para la clase personalizada de un elemento de interfaz de usuario dentro de una ventana de la Interfaz del Generador de interfaz de usuario no me deja conjunto de la clase personalizada y el módulo. Tuve que hacer lo siguiente: (1) Abra el .xib archivo como «Código Fuente» (clic derecho). (2) Agregar el atributo «customModule=<TARGETNAME>» junto a la customClass atributo.
  5. 20

    Ir al «nombre de proyecto» , haga clic en él y , a continuación, vaya a la «construcción de las fases» de la ficha y , a continuación, haga clic en la «compilación de fuentes» y , a continuación, haga clic en el botón»+», una ventana aparecerá , elija «Miclase.m» archivo y, a continuación, haga clic en «agregar» ,

    Construir el Proyecto y la Ejecución , el problema seguramente se resuelven fuera

    • sí, no me había activado TODOS los cuadros de destino que quería añadir a mi recién importado de clases. Gracias!
    • Sí! Mi VC archivo que faltaba en el proyecto de Destino.
  6. 19

    Es un Xcode4 problema de caché, simplemente elimine todas las carpetas en
    /Usuarios/tu_usuario > /Library/Application Support/iPhone Simulator/4.3/Aplicaciones/

    También si usted tiene el mismo problema de las pruebas en su iPhone, eliminar la app antigua antes de ejecutarlo…

    Buena suerte. Pascual

    • La post data de 2009, cuando Xcode 4, ni siquiera fue lanzado…
    • En la Configuración de generación de Proyecto que usted necesita para añadir «-all_load -ObjC» indicadores para el «Otro Enlazador» clave. Este no es un Xcode 4 problema específico, y de hecho, en general no tiene nada que ver con el Interface Builder bien.
    • Esta solución se ha sugerido ya en enero de 2010 (véase más arriba).
    • Sí – la manera más fácil de hacerlo es abrir el Simulador de iOS y elija desde el menú » Reset Contenido y la Configuración.
    • O usted podría hacer lo que yo hice y simplemente eliminar la aplicación en cuestión desde el Simulador de la pantalla de inicio. Yo tenía el mismo mensaje de error, pero fue hace referencia a un antiguo aplicación delegado.
    • Sigue siendo un problema en Xcode 5.1. Sólo tienes que golpear el día de hoy.

  7. 16

    A veces IBuilder perdidas customModule="AppName" customModuleProvider="target"

    Solucionarlo, abrir guión gráfico como el código fuente y cambiar esta línea:

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

    a este:

    <viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass"
     customModule="AppName" customModuleProvider="target" sceneMemberID="viewController">
    • Con Xcode 6.3 (6D570) tan pronto como se ejecute la configuración vuelve a la original (malo) uno. Bug? Estoy tratando de incluir un swift archivo en un C Objetivo del proyecto.
    • En XCode 6.4, sólo añadir customModuleProvider=»destino» en el guión gráfico de código fuente, bajo el deseado viewcontroller, se ha solucionado el problema.
    • Yo era capaz de resolver mi problema con sólo customModule="MyFrameworkName". Enorme +10
    • En realidad, mi problema era el contrario, quería eliminar la CustomTaget pero Xcode no se estaba cambiando la xib archivo de origen, por Lo que tuve que borrar customModule=»AppName» customModuleProvider=»destino» para hacer que funcione.
  8. 13

    Ir a Fases de construcción-> Compilar las Fuentes y añadir el nuevo .m archivos.

    • Sí, después de la adición de nuevos archivos a partir de un anterior proyecto en XCode 4.5 proyecto, añadiendo el .m archivos a Compilar la lista de Fuentes se lo ha hecho seguro. Agregando «-all_load -ObjC» no funcionó en mi caso, no me dolía, aunque.
  9. 13

    En mi caso fue mostrando un error para una clase que ni siquiera existen! Yo sospechaba que era algo que se metió hallan roto en el archivo de guión gráfico. Si no reconoce el archivo de clase en el error de intentar esto:

    1) abra el proyecto en sublime o de otro buen editor. La búsqueda de la clase se refiere.
    2) retire el conjunto de bits que dice

    customClass="UnrecognizedClassName"

    3) guarde.
    4) volver a xcode y limpie el proyecto, y trate de correr ahora.

    trabajó para mí.

    • Yo uso el OSX en la aplicación TextEdit. Funcionó muy bien para esta operación. Asegúrese de cerrar su primer proyecto y cerca de Xcode.
    • Que ayudó demasiado. Yo tenía más de un objeto con el mismo customClass, probablemente clic en la vista en lugar del controlador y se le asigna el mismo nombre.
    • Esta fue también la solución para el problema que me encontré, antes había entrado en un parcial nombre de la clase y de alguna manera el guión fue salvado de esa manera (por ejemplo,customClass="MyCla"). En lugar de eliminar la costumbre asignación de clase, es prudente para mí simplemente poner en la clase I de la intención de utilizar en el primer lugar 🙂
  10. 13

    Mi caso – Tratando de usar una Clase a partir de un swift marco en mi c objetivo del proyecto, tengo este error. La solución fue añadir Módulo (swift marco de referencia de la clase en el Interface builder/Guión gráfico como se muestra a continuación. Nada más

    • Estoy usando un Swift marco en Swift proyecto instalado por CocoaPods. Este método funciona. Y el nombre del módulo es el marco de su nombre.
    • Esta es la perfección de las obras. Necesidad de por qué ese módulo se quita ??
  11. 9

    Solo quiero añadir que esta respuesta ya que la mayoría si no todas las respuestas aquí se supone que la clase que realmente existe.. es sólo que el vinculador/compilador es demasiado tonto para ver.. por lo tanto las respuestas giran alrededor de alertar al enlazador para la existencia de la clase o de la creación de un hack ‘forzar’ existe..

    mi problema sucede cuando este mensaje es en realidad hablando de un inexistente clase.. así que un ejemplo podría ser yo, volver de nuevo a un viejo git revisión que no tiene conocimiento de una determinada clase.. sin embargo, el compilador se queja de que dicha clase no existe..

    solución?

    • Nuke toda la cosa! primero eliminar todos los archivos de construcción, etc, mediante la eliminación de todos el contenido de este directorio
      ~/Library/Developer/Xcode/DerivedData
    • eliminar la aplicación desde el propio teléfono (y claro el simulador de contenido si usted está usando un simulador)

    usted debe ser bueno para ir después de que

    • No se puede +1 esto lo suficiente uno, solucionado mi problema. Mi problema era exactamente el mismo que el archivo ya había sido eliminado sin embargo, la advertencia se sigue apareciendo cuando se compila.
    • En el Guión gráfico, tienes que rellenar en el Identificador. A veces escribo en la «Clase» de campo (en la Identidad del Inspector) por error. Por lo que el compilador se queja con razón de que la Clase no existe!
  12. 9

    La mejor manera de eliminar el error es:
    1) Seleccione el Archivo de Clase (.m)
    2) En «Objetivo de Pertenencia«, «check» el Proyecto de entrada de nombre de

    • Esto funciona. Yo era el desarrollo de una vaina y por alguna razón el pod de comandos de instalación estaba aplicando el objetivo equivocado a una clase particular de archivo. Fue que se aplica a un paquete de recursos que tenía. La correcta configuración de las Vainas-<-proyecto de título>-<pod-title>
    • Esto no funciona para mí. El objetivo de la membresía es correcta, pero el error se mantiene ocurriendo.
  13. 8

    He arreglado esto de copiar el texto de mi clase.h and .m, la eliminación de los archivos de clase del proyecto, y la creación de una nueva clase.h and .m archivos con el mismo nombre mediante «Agregar Archivo». Luego pegué el código de nuevo en los nuevos archivos, y todo funcionó de maravilla. De alguna manera los archivos no estaban vinculados correctamente cuando fueron creados. No tenía la necesidad de utilizar cualquier enlazador después de eso.

    • cuando yo había creado los archivos que no tienen una .m al final. He intentado cambiar el nombre del archivo y agregarlo de nuevo, sin embargo, todavía tenía que eliminar y volver a crear el archivo antes de xcode era feliz.
    • El archivo, probablemente, no era parte de su destino. Volver a agregar es probable que terminó con una casilla de verificación predeterminado en el objetivo correcto.
    • Esta solución también trabajó para mí, pero estoy 100% seguro de que antes he eliminado la primera clase (.h + .m), he comprobado que era parte de mi destino. Ese no era el problema para mí. Como Laura, me acaba de eliminar de la clase y lo hizo de nuevo (con otro nombre), y funcionó bien, sin que ninguna de las otras soluciones en esta página.
  14. 7

    FINALMENTE he arreglado esto, se me había olvidado añadir el siguiente código a mi .m de archivo:

    @implementation MyTableViewCell
    
    @end

    Por lo que era causado porque yo había hecho un marcador de posición de @interfaz de mi celda de la tabla, que tenía una conexión a un elemento en el .xib archivo, pero hay un error en el Interface Builder, donde si no @la aplicación es especifica para una clase, no la puede encontrar.

    Había ido a través de todos los pasos de otros foros de ver la .xib como fuente y ver MyTableViewCell a pesar de que yo había comentado de mi código. Yo había intentado reiniciar el simulador. Incluso traté de romper todos los de mi clase en los archivos con el mismo nombre de las interfaces, pero nada funcionó hasta que este.

    P. S. en mi experiencia, no importa si los nombres de los .h/.m archivos son diferentes de los nombres de los @interfaz. Tengo varios archivos que contienen más de un @interfaz y funcionan bien.

    P. P. S. tengo una explicación más detallada de por qué UITableViewCell y UICollectionViewCell la causa de este error en https://stackoverflow.com/a/22797318/539149 junto con la forma de revelar en tiempo de compilación utilizando registerClass: forCellWithReuseIdentifier:.

  15. 6

    Esto sucede porque el .xib tiene un rancio enlace a la App antigua Delegado que no existe más.
    Me fijo como así:

    • Clic derecho sobre el .xib y seleccione Abrir como > código Fuente
    • En este archivo, buscar la App antigua delegado y reemplazarlo con uno nuevo
    • Abierto como el Código Fuente ya no existe, pero usted puede apenas como fácilmente con clic derecho, » Mostrar en Finder, haga clic derecho en el archivo y abrir en el editor de texto. Por supuesto, copia de seguridad del archivo antes de realizar cualquier cambio 😉
  16. 6

    acaba de agregar a continuación el código en el inicio de appdelegate applicatoindidfinishlanching método,entonces funciona bien

    [de la clase myclass];

    • Sí, esto ha sido mencionado en la respuesta.
  17. 5

    Traté de ésta y otras respuestas que aparecen en este sitio, ninguno de los cuales se ordenan para mí. Este comentario (de http://www.iphonedevsdk.com/forum/iphone-sdk-development/43330-unknown-class-interface-builder-file.html) ayudó:

    Después de buscar y buscar y buscar, me descubrió finalmente el nombre de esta eliminado de la clase oculto en un archivo. Tenía que abrir la interfaz del generador de archivos en X-code, haciendo clic derecho sobre ellos y seleccionando «ver código fuente’. A continuación, la búsqueda de vino con

    <object class="NSMutableArray" key="dict.values">
    <bool key="EncodedWithXMLCoder">YES</bool>
    <string>com.apple.InterfaceBuilder.IBCocoaTouchP lu gin</string>
    <string>*this was the class name*</string>

    La simple eliminación de la última línea no solucionarlo por desgracia, quejándose de que hay un número incorrecto de los elementos en el archivo. Usted necesita para eliminar la línea correspondiente en la sección de líneas arriba, que se refiere a CustomClass.

  18. 5

    En mi caso, he XCode6, la clase especificada .m archivo de terminar en el lugar equivocado en fase de construcción – debería haber sido bajo Compilar Fuentes, pero al final terminan en la

    • Gracias a ti empecé a mirar la lista y enteré de que mi archivo estaba solo falta que, probablemente cuando creé yo no se establecen las metas derecho
  19. 4

    Este problema no parece obtener anticuado.

    Tuve el mismo problema con Xcode 8 y resuelto similar como smilebot:

    1. Abre tu archivo de guión gráfico como el «código Fuente» dentro de Xcode:

    2. Búsqueda de la clase se refiere a & retire el conjunto de bits que dice

    customClass=»UnrecognizedClassName»

    1. Abrir su archivo de guión gráfico como «interfacebuilder – storyboard» de nuevo y reconstruir su aplicación.
  20. 3

    Acaba de quitar el Miclase.m y .h y agregarlos al proyecto de nuevo es un trabajo para mí.

  21. 3

    Me había Desconocido ‘de la clase favouritesButton en el Interface Builder archivo» y relacionarlo con un libro de cuentos escena en la que el botón en cuestión tenía un falso clase personalizada de «favouritesButton» en el campo de la Clase en la parte superior de la Identidad del Inspector. Me refería a poner ese valor en el campo siguiente: la Identidad de la Etiqueta.

    Cambiar esto a «UIButton» resuelto el problema.

  22. 2

    Me encontré con esto en Swift.

    Moviendo la .xib archivo en el proyecto de la Base.lproj carpeta de deshacerse de este error.

  23. 1

    He tenido este error de los cultivos hasta el día de hoy cuando la conversión de mi aaLuminate aplicación Universal en virtud de Xcode 4.
    Esta aplicación se basa en la utilidad de la plantilla y fue construido originalmente en virtud de Xcode 3.

    Para ahorrar tiempo he copiado el iPhone Principales y Reverso Vistas a través de los nombres apropiados en la aplicación Universal. He experimentado el «Desconocido clase x en el Interface Builder archivo de error». En mi caso no era nada en el XIB archivos o los objetivos.

    Yo también había copiado el aaLuminate-Info.plist archivo a través de por otras razones – esto es una edad clave Principal de la punta de base del archivo de nombre» conjunto de MainWindow.

    Tan pronto como me elimina esta clave se solucionó el problema!

  24. 1

    En mi caso tengo este error porque me había tratado de salvar algo de trabajo mediante la creación de un nuevo proyecto y, a continuación, la eliminación de varios de los archivos de origen y de copiar los archivos de origen del mismo nombre desde el proyecto de trabajo. También he copiado mi MainStoryBoard archivo que estaba buscando a mi RootViewController. Sin embargo, cuando me había borrado el original RootViewController y luego agregó en el RootViewController del producto anterior, es evidente que el Agregar Archivos de error de la operación de «verificación» en el cuadro de destino como se sugirió anteriormente. Por el mero hecho de visitar todos los newley importados «.m» archivos y asegurarse de que la meta de afiliación cuadro fue verificada, todo estaba bien. Creo que lo que estaba sucediendo era que el archivo de guión gráfico estaba buscando una clase que había sido «excluido» del enlace debido a que el objetivo de la membresía era desenfrenado. Asegurarse de que los archivos necesarios para la meta son designados por el destino de la membresía en el archivo inspector hizo el truco. Gracias Pat! (ver arriba)

  25. 1

    En mi caso fue porque me declaró una subclase de una subclase de una UITableView de células en el .h archivo (la declaración de ambos subgrupos fueron en el mismo .h archivo), pero se olvidó de hacer un vacío de la implementación de la segunda subclase en el .m archivo.

    no te olvides de aplicar cualquier subclase de una subclase declara en el .h archivo! suena simple, pero es fácil olvidar porque Xcode va a hacer esto para usted si usted está trabajando con una clase por .h/.m archivo.

  26. 1

    Me había «Desconocido clase RateView en el Interface Builder» donde RateView fue una subclase de UIView. Yo había dejado un UIView en mi Storyboard de la escena y cambia la clase Personalizada de campo a RateView. Sin embargo, este error apareció.

    Para depurar, he cambiado el nombre de mi clase a RateView2 y cambiar todas las referencias para que coincida con excepción de la clase Personalizada campo de la UIView. El mensaje de error todavía aparece como de antes con RateView como la falta de clase. Esta confirmado que el mensaje de error relacionado con el valor de la clase Personalizada de campo. He cambiado este valor a RateView2 y el mensaje de error cambia a «Desconocido clase RateView2 en el Interface Builder». El progreso de las clases.

    Por último, me inspeccionar el código fuente de los archivos en el Inspector de Archivo. Allí descubrí que el archivo de código fuente (que yo había copiado de un tutorial) no se asoció con mi Destino. En otras palabras, no tenía ninguna Meta de Afiliación. He marcado la casilla de que la clase del archivo de código fuente de un miembro de la aplicación de destino y el mensaje de error se fue.

  27. 1

    En mi caso yo había eliminado una clase llamada «viewController» no darse cuenta de que fue seleccionado con el storyboard de la identidad del inspector (en Clase Personalizada’ hasta la parte superior).

    Basta con simplemente seleccionar la clase correcta para el controlador de vista de su identidad de inspector de la Clase Personalizada de campo o agregar una nueva clase al proyecto y seleccionar el que como su Clase Personalizada.

    Trabajado para mí!

  28. 1

    Este me volvió loco un poco, y ninguna de las sugerencias anteriores me ayudó a deshacerse del error. Por suerte solo tuve un IB objeto con la clase, de modo que sólo he eliminado y añadido de nuevo con la misma clase especificada. El Error fue…

  29. 0

    He probado la mayoría de las soluciones que los chicos se sugirió anteriormente, pero fue en vano. Después de la lectura de la solución de user776904 del sospeché que estaba teniendo el mismo problema que yo había reconstruido mi aplicación desde cero, sino copiado el xib archivos del proyecto anterior. Yo sospechaba que el archivo xib había una referencia al antiguo proyecto que fue la causa de mi error, por lo que simplemente he eliminado mi mainwindow_ipad.xib archivo y copiar en una nueva a partir de un limpio y nuevo proyecto. Esta resuelto. Y no se me juego lo suficiente para comenzar a cambiar los bits de la xib archivo en su código fuente.

  30. 0

    De interface builder/storyboard se refiere a una clase que no está disponible.

    Si el es un conocido de la clase no enlaza.

    Si el no es una clase o sólo algunos de los personajes es probable que sea un error tipográfico.
    En ese caso, verifique que todos los campos en la vista controlador para este desconocido ‘de la clase’.
    En la » Identidad Inspector (3º por la izquierda en el bloque de ‘Clase Personalizada’ es un campo
    ‘La clase’, que probablemente contiene el valor incorrecto. Normalmente se enumera el tipo de campo
    (UIView /UILabel etc).

  31. 0

    Vi este error cuando he cambiado el nombre de la clase, a pesar de la actualización de todos los relevantes .h and .m. Resultó que yo había perdido la actualización de ‘customClass’ valor en el .guión archivos. Que resuelve el problema.

  32. 0

    Este problema me sucedió a mí cuando he añadido un selector de vista y, a continuación, elimine. En caso de que esto pueda ayudar a alguien, he aquí cómo lo resuelto por último:

    1. Abrir Esquema del Documento en XCODE (no saben lo que es el Esquema del Documento? Yo no también – google.. 🙂 ).

    2. Encontrar la Escena que hace que el mensaje de advertencia aparece, en la ventana esquema del documento.

    3. Sobre la problemática de la escena, de pie (clic) en Vista y, a continuación, en la Utilidad (en google) de la ventana seleccione la Identidad del inspector de pestaña y volver a cambiar la costumbre nombre de la clase predeterminada de UIView.

    Que no es así. 🙂

  33. 0

    Un montón de respuestas, pero ninguna era la solución,
    Yo relacionarlo con el guión gráfico en el que el controlador había un Inválido clase personalizada (no existe ninguna clase después de que yo le cambió el nombre)

    • Cambio de nombre parece ser la causa. Obtengo el error después de cambiar el nombre de las clases. Pero entonces, no parece haber ninguna manera de unir a la clase a la vista de nuevo. Incluso el cambio de nombre a la antigua nombre no ayuda.
  34. 0

    Tuve este problema cuando yo había hecho un nuevo proyecto con el mismo nombre y se había quedado tanto en el simulador. He cambiado el nombre de uno de los proyectos, se elimina la aplicación en el simulador, luego corrió limpio y re-construir.

  35. 0

    Por La Documentación De Apple

    Para 64 bits y el sistema operativo de iPhone aplicaciones, hay un linker error que
    evita -ObjC de la carga de objetos de los archivos de las bibliotecas estáticas que
    contienen sólo las categorías y no hay clases. La solución es utilizar el
    -all_load o -force_load banderas.

    En corto agregar -all_load a «otros vinculador» banderas en su «Build Settings» y usted debe ser bueno.

    http://developer.apple.com/library/mac/qa/qa1490/_index.html

  36. 0

    En mi caso me sale este mensaje de error por un error estúpido por mí: en el interface builder quería establecer el identificador de un UITableViewCell, pero he escrito el identificador accidentalmente a la Costumbre de la clase’ entrada en el interface builder.

    Hice células 1000 veces antes de….

  37. 0

    Este «Desconocido clase en el Interface Builder archivo» error en tiempo de ejecución si usted tiene más de un Guión gráfico y uno de los StoryBoard con el que realmente no existe.

  38. 0

    En mi caso fue un error ortográfico «Clase Personalizada» nombre. Asegúrese de que usted revise su guión para las clases personalizadas que se define.

  39. 0

    En mi caso tuve que usar un guión de otro proyecto. Después de mirar el guión archivo xml (por ejemplo, en TextWrangler) me di cuenta de que uno de los «customModule» xml valores de atributo para un controlador que estaba mal (era todavía la referencia a la edad de proyecto). El cambio manual se ha solucionado el problema.

  40. 0

    En mi caso, la costumbre UIView clase está incrustado en un marco. He cambiado la costumbre UIView archivo de encabezado de «proyecto» a «público» y lo incluye en el encabezado principal de archivo.

  41. 0

    Sigo teniendo este error con WatchKit una y otra vez y parece ser que cuando hay un elemento de interfaz de usuario que no está ligado a una toma de corriente en el código. Supongo que esto es necesario en WatchKit.

    class InterfaceController: WKInterfaceController {
        @IBOutlet weak var table: WKInterfaceTable!
    }

    Nota importante: sólo tiene que conectar los extremos del elemento. Por ejemplo, si intenta también dar una conexión de algo dentro de la tabla como una etiqueta dentro de una fila obtendrá un error del compilador diciendo que la salida no es válida y no puede ser conectado a la repetición de contenidos.

  42. 0

    En mi caso el problema era un muerto IBOutlet enlace. Una vez que esto se ha solucionado todo estaba bien de nuevo.

  43. 0

    Después de probar la mayoría de las sugerencias aquí wihtout éxito, he cambiado el nombre de mi clase y luego le cambió el nombre manualmente en el archivo xib (con código fuente). Problema luego se fue.

  44. 0

    En mi caso, la clase no se pudo encontrar, porque era un clasificado definido en una extensión dentro del marco de este modo:

    extension Buttons {
        public class MyButton: UIButton {
            //...
        }
    }

    Cuando se extrae de la clase a partir de la extensión, el Guión podría encontrar finalmente la clase (MyFrameworkButton):

    extension Buttons {
        public typealias MyButton = MyFrameworkButton
    }
    
    public class MyFrameworkButton: UIButton {
        //...
    }

Dejar respuesta

Please enter your comment!
Please enter your name here