Error de "clase desconocida <MyClass> en el archivo de Interface Builder" en tiempo de ejecución


260

A pesar de que Interface Builder es consciente de MyClassun error, recibo un error al iniciar la aplicación.

Esto sucede cuando MyClasses parte de una biblioteca, y no sucede si compilo la clase directamente en el destino de la aplicación.


¿Cómo se vincula a la biblioteca?
Elise van Looij

Utilizo un subproyecto dependiente e hice una operación de arrastrar y soltar de los productos del subproyecto Xcode a la fase de compilación "Enlace binario con biblioteca" de mi objetivo actual.
jhoule el

Si la clase es de CocoaPods, esto podría ayudar a github.com/CocoaPods/CocoaPods/issues/491 .
Protocole

Podría estar relacionado? stackoverflow.com/a/24924967/511299
Sunkas

Respuestas:


222

A pesar del error " Clase desconocida MyClass en el archivo Interface Builder " impreso en tiempo de ejecución, este problema no tiene nada que ver con Interface Builder, sino con el vinculador, que no vincula una clase porque ningún código lo usa directamente.

Cuando los datos .nib (compilados a partir de .xib) se cargan en tiempo de ejecución, MyClassse hace referencia a ellos utilizando una cadena, pero el vinculador no analiza la funcionalidad del código, solo la existencia del código, por lo que no lo sabe. Dado que ningún otro archivo fuente hace referencia a esa clase, el vinculador lo optimiza fuera de existencia al hacer el ejecutable. Entonces, cuando el código de Apple intenta cargar tal clase, no puede encontrar el código asociado e imprime la advertencia.

Por defecto, los objetivos de Objective-C tendrán -all_load -ObjCbanderas establecidas de forma predeterminada, que mantendrán todos los símbolos. Pero había comenzado con un objetivo C ++, y no tenía eso. Sin embargo, encontré una forma de evitar esto, lo que mantiene al enlazador agresivo.

El truco que estaba usando originalmente era agregar una rutina estática vacía como:

+(void)_keepAtLinkTime;

que no hace nada, pero que llamaría una vez, como:

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

Esto forzaría al vinculador a mantener toda la clase y el error desaparecerá.

Como jlstrecker señaló en los comentarios, en realidad no necesitamos agregar un _keepAtLinkTimemétodo. Simplemente llamando a uno existente, como:

   [MyClass class];

hace el truco (siempre y cuando se derive de un NSObject).

Por supuesto, puede llamar a esto en cualquier ubicación de su código. Supongo que incluso podría estar en un código inalcanzable. La idea es engañar al vinculador para que piense que MyClassse usa en algún lugar para que no sea tan agresivo al optimizarlo.

Xcode 6.3.2 y Swift 1.2

Definición rápida de vista. Asegúrese de anular init(coder aDecoder: NSCoder). Definición Objective-C de controlador de vista. Y una punta en un peral.

Agregue el nombre del módulo al inspector de detalles de Nib donde elija su clase.


2
Los datos .xib no se cargan en tiempo de ejecución. El compilador de IB compila el xib en un plumín; la punta es lo que se carga en tiempo de ejecución.
Peter Hosey el

19
No tienes que modificar MyClass. Simplemente llame a un método del que hereda NSObject, como +class.
jlstrecker

10
Aunque no era Xcode 4 cuando se publicó la pregunta original, lo siguiente todavía parece ser apropiado. En Xcode 4 en lugar de agregar algún método ficticio para eliminar el error, puede verificar todos los objetivos necesarios MyClass.men la sección Membresía de destino del Inspector de archivos.
adubr

51
Otra posibilidad en estos días es que MyClass.m podría no estar en la fase de compilación de Orígenes de compilación. Esto puede suceder si arrastra MyClass.h / m a su proyecto, en lugar de crearlos con Nuevo archivo.
Steven Fisher

66
@JoshBruce, ¿puedes explicar la solución Swift? Realmente no lo entiendo.
Ryan Bobrowski, el

183

Arreglé esto siguiendo las líneas de lo que sugirió Laura, pero no necesitaba volver a crear los archivos.

  • Con XCode 4, en el Navegador de proyectos , seleccione el archivo .m que contiene la clase de la que se queja

  • Vaya a Ver-> Utilidades-> Mostrar inspector de archivos
    (esto mostrará el Inspector de archivos a la derecha, con esa información de archivo .m)

  • Abra la sección Membresía de destino y asegúrese de que su objetivo esté seleccionado para este archivo .m

Cuando agregué mi archivo .m a mi proyecto, no lo agregó a mi destino predeterminado por alguna razón y eso me provocó el error que mencionó.


Es cierto que a veces, el error del vinculador se debe simplemente a no compilar su archivo en su destino en primer lugar. Lo que describe es la forma de controlar los objetivos a los que está asociado un archivo. Desafortunadamente, mi archivo ya era parte de mi objetivo, pero aún tenía un problema de enlace. Esto probablemente se debió a que mi biblioteca era C ++ (a diferencia de Objective-C), que tiene diferentes indicadores de enlace predeterminados (ver publicaciones de Alasdair Allan y Sijo arriba).
jhoule

55
Esta sugerencia funcionó para mí, aunque de manera ligeramente diferente, ya que mi casilla de verificación "Membresía objetivo" ya estaba marcada. Lo desmarqué y lo reconstruí, pero luego el mensaje de error cambió para indicar mi nuevo nombre de clase. Vuelva a marcar la casilla y vuelva a construir, ahora todo funciona. ¡Mucho más fácil que eliminar archivos de caché!
electromaggot

Gran solución a través de Xcode UI. @electromaggot, Xcode puede confundirse cuando agrega clases manualmente, por lo que es posible que deba agregar más de un archivo.
Gonen

Esta es la solución para mí también. Había arrastrado algunos archivos de clase de otro proyecto, y esos archivos de clase fueron los que provocaron la excepción.
hairbo

1
Eliminé un archivo de mi proyecto y luego agregué el mismo archivo más tarde y esto resolvió el problema.
MindSpiker

70

Esto realmente no tiene nada que ver con Interface Builder, lo que está sucediendo aquí es que Xcode no está cargando los símbolos de su biblioteca estática. Para resolver este problema, debe agregar los -all_load -ObjCindicadores a la Other Linker Flagsclave de la configuración de compilación del proyecto (y posiblemente el objetivo).

Dado que Objective-C solo genera un símbolo por clase, debemos obligar al vinculador a cargar los miembros de la clase también mediante el uso del indicador -ObjC, y también debemos forzar la inclusión de todos nuestros objetos desde nuestra biblioteca estática agregando el -all_loadindicador del vinculador. Si se saltea estas banderas tarde o temprano, se encontrará con el error unrecognized selectoru obtendrá otras excepciones, como la que ha observado aquí.


55
Encontré que solo la -ObjCbandera sola lo arregló en mi caso.
Kekoa

55
@Kekoa eso se debe a que su versión de Xcode (LLVM) es más reciente que la persona que escribió esta respuesta. Hoy en día, usar -ObjCes lo suficientemente bueno para solucionar el problema.
Hasta el

Esto solo me ayudó. Durante la compilación mostró problemas relacionados con el marco necesarios que también se resolvieron una vez que importé todos los marcos.
Vaibhav Saran

-ObjC flag solo solucionó mi problema. De hecho, recibí un error por tener el atributo all_load en iOS7.
Sushma Satish

El uso de -all_load -ObjC puede causar un aumento innecesario en el tamaño del producto. Este problema ocurre con los archivos de categoría también en marcos solamente.
Ali Amin

26

Me encontré con este problema hoy usando Swift.

Cambié una clase Model.h + Model.ma una Model.swift. Este objeto se usó en Interface Builder con class = Model.

Tan pronto como reemplacé el objeto, la clase ya no se pudo cargar.

Lo que tuve que hacer fue cambiar la referencia de clase en IB de:

Class = Model
Module = 

a

Class = Model
Module = <TARGETNAME>

Lo encontrarás <TARGETNAME>en la configuración de compilación. También es el nombre que aparece en el encabezado rápido generado:#import "TARGETNAME-Swift.h"


1
Esta parece ser la respuesta correcta. A menos que alguien pueda decir lo contrario, esto debe marcarse como correcto.
Bjørn Ruthberg

1
Gran respuesta gracias. Para mí, el Modulenombre estaba allí en el menú desplegable. Era el nombre de mi aplicación.
ChrisH

Esto funciona para mi. Para mi problema, el <TARGETNAME> mencionado en su respuesta, es el nombre del marco que contiene la clase.
Tyler Long

Llegué a la conclusión por mi cuenta, este también era el error que estaba recibiendo y estaba dispuesto a publicar mis hallazgos cuando vi su publicación. En realidad lo vi, pero lo pasé por alto debido a las muchas respuestas y al ruido que lo rodeaba. Creo que su respuesta podría mejorarse con algunas capturas de pantalla para diferenciar su respuesta de las demás. Seguramente lo atraparía si fuera así. Muchas gracias, de todos modos, por publicarlo aquí. Tienes mi voto a favor.
jvarela

Para AppDelegate, pude arreglar esto en la interfaz de usuario de Interface Builder. Para la clase personalizada de un elemento de IU dentro de una ventana, la IU de Interface Builder no me permitió establecer la clase y el módulo personalizados. Tuve que hacer lo siguiente: (1) Abra el archivo .xib como "Código fuente" (haga clic derecho sobre él). (2) Agregue el atributo "customModule = <TARGETNAME>" al lado del atributo customClass.
Poulsbo

20

Vaya a "ProjectName", haga clic en él, luego vaya a la pestaña "Fases de compilación", y luego haga clic en "compilar fuentes", y luego haga clic en el botón "+", aparecerá una ventana, elija "MyClass". m "archivo y luego haga clic en" agregar ",

Construye el proyecto y ejecútalo, el problema seguramente se resolverá


Sí, no había marcado TODAS las casillas de destino que quería agregar a mis clases recién importadas. ¡Gracias!
Joel Balmer

¡Si! Faltaba mi archivo VC del proyecto Target.
Sebastian Dwornik

19

Es un problema de caché Xcode4, simplemente elimine todas las carpetas en / Users / your_user / Library / Application Support / iPhone Simulator / 4.3 / Applications /

Además, si tiene el mismo problema al probar en su iPhone, elimine la aplicación anterior antes de ejecutarla ...

Buena suerte. Pascual


8
En la Configuración del proyecto, debe agregar los indicadores "-all_load -ObjC" a la tecla "Otros indicadores del vinculador". Este no es un problema específico de Xcode 4 y, de hecho, tampoco tiene nada que ver con Interface Builder.
Alasdair Allan

Esta solución ya se sugirió en enero de 2010 (ver arriba).
jhoule

66
Sí, la forma más fácil de hacerlo es simplemente abrir el simulador de iOS y en el menú elegir 'Restablecer contenido y configuración'
RanLearns

O puede hacer lo que hice y simplemente eliminar la aplicación en cuestión de la pantalla de inicio del simulador. Recibí el mismo mensaje de error, pero hacía referencia a un antiguo delegado de la aplicación.
spstanley

16

A veces IBuilder 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">

Usando Xcode 6.3 (6D570) tan pronto como ejecuto la configuración vuelve al original (malo). ¿Insecto? Estoy tratando de incluir un archivo rápido en un proyecto de Objective C.
addzo

En XCode 6.4, simplemente agregando customModuleProvider = "target" en el código fuente del guión gráfico, bajo el controlador de vista deseado, solucionó el problema.
Amro Shafie

Pude resolver mi problema con solo customModule="MyFrameworkName". Enorme +10
Stan

En realidad, mi problema era todo lo contrario, quería eliminar CustomTaget pero Xcode no estaba cambiando el archivo fuente xib, así que tuve que eliminar customModule = "AppName" customModuleProvider = "target" para que funcione.
Adriana

14

Mi caso: al intentar usar una clase desde un marco rápido en mi proyecto objetivo c, recibí este error. La solución fue agregar el Módulo (marco rápido) de la clase en Interface Builder / Storyboard como se muestra a continuación. Nada más

ingrese la descripción de la imagen aquí


2
Estoy usando un marco Swift en el proyecto Swift instalado por CocoaPods. Este método funciona Y el nombre del módulo es el nombre del marco.
JsW

1
Esto funciona perfectamente. ¿Necesita saber por qué se elimina ese módulo?
iSrinivasan27

Funciona perfectamente con los problemas de los marcos de cocoapod ... felicitaciones por la respuesta perfecta ...
jayant rawat

13

Vaya a Fases de compilación-> Compilar fuentes y agregue sus nuevos archivos .m.


Sí, después de agregar nuevos archivos de un proyecto anterior a un proyecto XCode 4.5, agregar los archivos .m a la lista de fuentes de compilación lo hizo con seguridad. Agregar "-all_load -ObjC" no funcionó en mi caso, aunque no me dolió.
whyoz

13

¡En mi caso, estaba mostrando un error para una clase que ni siquiera existía! Sospeché que era algo que se metió en el archivo del guión gráfico. Si no reconoce el archivo de clase en el error, intente esto:

1) abre tu proyecto en sublime u otro buen editor. Busque la clase a la que se hace referencia. 2) eliminar todo lo que dice

customClass="UnrecognizedClassName"

3) guardarlo. 4) regrese a xcode y limpie el proyecto, e intente ejecutarlo ahora.

trabajó para mi.

ingrese la descripción de la imagen aquí


Yo uso la aplicación OSX TextEdit. Funcionó bien para esta operación. Asegúrese de cerrar su proyecto primero y cerrar Xcode.
TJ

Eso también ayudó. Tenía más de un objeto con el mismo CustomClass, probablemente hice clic en la vista en lugar del controlador y me asignó el mismo nombre.
Mc-

1
Esta fue también la solución al problema que encontré; Anteriormente había ingresado un nombre de clase parcial y de alguna manera el guión gráfico se guardó de esa manera (por ejemplo customClass="MyCla"). En lugar de eliminar la asignación de clase personalizada, fue prudente para mí simplemente poner en la clase que pretendía usar en primer lugar :)
dave

9

Solo quiero agregar esta respuesta, ya que la mayoría, si no todas las respuestas aquí, suponen que la clase realmente existe ... es solo que el vinculador / compilador es demasiado tonto para verlo ... por lo tanto, las respuestas giran en torno a alertar al vinculador de la existencia de la clase o creando un truco para 'forzar' que exista.

mi problema ocurre cuando este mensaje en realidad está hablando de una clase inexistente ... así que un ejemplo sería volver a una antigua revisión de git que no tiene conocimiento de cierta clase ... sin embargo, el compilador se queja de que dicha clase no t existe ..

¿solución?

  • ¡Destroza todo! primero elimine todos los archivos de compilación, etc. eliminando todos los contenidos en este directorio ~ / Library / Developer / Xcode / DerivedData
  • eliminar la aplicación del teléfono en sí (y borrar el contenido del simulador si está utilizando un simulador)

deberías ser bueno para ir después de eso


2
No puedo hacer +1 en este, solucionó mi problema. Mi problema era exactamente el mismo cuando el archivo ya se había eliminado, pero la advertencia aún aparecía cuando se compilaba.
Brett

En el Guión gráfico debe completar el Identificador. A veces lo escribo en el campo "Clase" (en el Inspector de identidad) por error. ¡Entonces el compilador se queja por una razón de que la Clase no existe!
Vincent

9

La mejor manera de eliminar el error es: 1) Seleccione el archivo de clase (.m) 2) En " Membresía de destino ", "marque" la entrada del nombre del proyecto


Esto funciona. Estaba desarrollando un pod y, por alguna razón, el comando de instalación del pod estaba aplicando el objetivo incorrecto a un archivo de clase en particular. Se estaba aplicando a un paquete de recursos que tenía. La configuración correcta es Pods- <project-title> - <pod-title>
krosullivan el

Esto no funciona para mi. La membresía de destino es correcta, pero el error sigue ocurriendo.
Kokodoko

8

Lo arreglé copiando el texto de mis class.h y .m, eliminando esos archivos de clase del proyecto y creando nuevos archivos class.h y .m con el mismo nombre usando "Agregar archivo". Luego pegué el código nuevamente en los nuevos archivos, y todo funcionó muy bien. De alguna manera, los archivos no estaban vinculados correctamente cuando se crearon. No necesitaba usar ningún indicador de enlace después de eso.


1
cuando creé los archivos por primera vez, no tenía un .m al final. Intenté cambiar el nombre del archivo y agregarlo nuevamente, sin embargo, aún tenía que eliminar y volver a crear el archivo antes de que xcode estuviera contento.
Odyth

Su archivo probablemente no era parte de su objetivo. Volver a agregarlo probablemente terminó con una casilla de verificación predeterminada en el objetivo adecuado.
jhoule

1
Esta solución también funcionó para mí, pero me aseguré al 100% de que antes de eliminar la primera clase (.h + .m), verificaba que era parte de mi objetivo. Ese no fue el problema para mí. Al igual que Laura, acabo de eliminar la clase y la hice nuevamente (con un nombre diferente), y funcionó bien, sin ninguna de las otras soluciones en esta página.
Nate

7

Finalmente lo arreglé, me había olvidado de agregar el siguiente código a mi archivo .m:

@implementation MyTableViewCell

@end

Entonces, fue causado porque había creado un marcador de posición @interface para mi celda de tabla, que tenía una conexión con un elemento en el archivo .xib, pero hay un error en Interface Builder donde si no se especifica @implementation para una clase, No puede encontrarlo.

Había seguido todos los pasos de otros foros para ver el .xib como fuente y ver MyTableViewCell a pesar de que lo había comentado en mi código. Intenté restablecer el simulador. Incluso intenté dividir todas mis clases en archivos separados con el mismo nombre que las interfaces, pero nada funcionó hasta esto.

PD: en mi experiencia, no importa si los nombres de los archivos .h / .m son diferentes de los nombres de @interface. Tengo varios archivos que contienen más de una @interface y funcionan bien.

PPS Tengo una explicación más detallada de por qué UITableViewCell y UICollectionViewCell causan este error en https://stackoverflow.com/a/22797318/539149 junto con cómo revelarlo en tiempo de compilación usando registerClass: forCellWithReuseIdentifier :.


6

Esto sucede porque el .xib tiene un enlace obsoleto con el antiguo delegado de aplicaciones que ya no existe. Lo arreglé así:

  • Haga clic derecho en .xib y seleccione Abrir como> Código fuente
  • En este archivo, busque el delegado de la aplicación anterior y reemplácelo por el nuevo

Abrir como código fuente ya no existe, pero puede hacer clic con el botón derecho en Mostrar, en el Finder, luego hacer clic con el botón derecho en el archivo y abrir en TextEdit. Por supuesto, haga una copia de seguridad del archivo antes de realizar cualquier cambio;)
Scott Allen

6

simplemente agregue el código a continuación al comienzo del método de aplicación de aplicación delegada y finalización, entonces funcionará bien

[clase myclass];


5

Intenté esta y otras respuestas enumeradas en este sitio, ninguna de las cuales lo resolvió para mí. Estos comentarios (de http://www.iphonedevsdk.com/forum/iphone-sdk-development/43330-unknown-class-interface-builder-file.html ) ayudaron:

Después de buscar y buscar y buscar, finalmente descubrí el nombre de esta clase eliminada oculta en un archivo. Tuve que abrir los archivos del generador de interfaz en código X, haciendo clic derecho sobre ellos y seleccionando 'ver como código fuente'. Luego, al buscarlo, surgió

<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>

Desafortunadamente, simplemente eliminar esa última línea no lo soluciona, quejándose de que hay un número incorrecto de elementos en el archivo. Debe eliminar la línea correspondiente en la sección de líneas que se encuentra arriba, a la que se refiere CustomClass.


5

En mi caso, tengo XCode6, el archivo de clase .m especificado termina en el lugar incorrecto en la fase de compilación. Debería haber estado en Orígenes de compilación , pero terminar en elCopiar recursos del paquete


Gracias a que empecé a buscar en la lista y se enteraron de que mi archivo estaba ausente, probablemente cuando lo creé yo no puse los objetivos correctos
schmru


4

Este problema no parece estar desactualizado.

Tuve el mismo problema con Xcode 8 y lo resolví de forma similar a smilebot :

  1. Abra su archivo de guión gráfico como "Código fuente" dentro de Xcode:

  2. Busque la clase a la que se hace referencia y elimine todo el bit que dice

customClass = "UnrecognizedClassName"

  1. Abra su archivo de storyboard como "interfacebuilder - storyboard" nuevamente y reconstruya su aplicación.

3

Simplemente elimine MyClass.m y .h y agréguelos al proyecto nuevamente, es trabajo para mí.


3

Tenía 'FautouritesButton en el archivo Interface Builder de clase desconocida' y lo rastreé hasta una escena de libro de cuentos donde el botón en cuestión tenía una clase falsa personalizada de "favouritesButton" en el campo Clase en la parte superior del Inspector de identidad. Tenía la intención de poner ese valor en el siguiente campo: Etiqueta de identidad.

Cambiar esto a "UIButton" resolvió el problema.



1

Este error apareció hoy al convertir mi aplicación aaLuminate a Universal en Xcode 4. Esta aplicación se basa en la plantilla de la utilidad y se creó originalmente en Xcode 3.

Para ahorrar tiempo, copié las vistas principal y invertida del iPhone a los nombres apropiados en la aplicación Universal. Experimenté el error "Clase desconocida x en el archivo de Interface Builder". En mi caso, no había nada en los archivos u objetivos XIB.

También había copiado el archivo aaLuminate-Info.plist por otras razones: tenía una antigua clave "Nombre base del archivo de punta principal" establecida en MainWindow.

¡Tan pronto como borré esta clave, solucionó el problema!


1

En mi caso, recibí este error porque intenté guardar algo de trabajo creando un nuevo proyecto y luego eliminando varios de los archivos de origen y copiando los archivos de origen del mismo nombre del proyecto de trabajo. También copié mi archivo MainStoryBoard que buscaba mi RootViewController. Sin embargo, cuando eliminé el RootViewController original y luego agregué el RootViewController del producto anterior, evidentemente la operación Agregar archivos no pudo "marcar" la casilla de destino como se sugirió anteriormente. Simplemente visitando todos los archivos ".m" importados de newley y asegurándose de que la casilla de membresía objetivo estuviera marcada, todo estaba bien. Creo que lo que estaba sucediendo era que el archivo del guión gráfico estaba buscando una clase que había sido "excluida" del enlace porque la membresía objetivo no estaba marcada. Asegurarse de que los archivos necesarios para el objetivo estén designados en la membresía de destino en el inspector de archivos hizo el truco. Gracias Pat! (véase más arriba)


1

En mi caso, fue porque declaró una subclase de una subclase de una celda UITableView en el archivo .h (la declaración de ambas subclases estaba en el mismo archivo .h), pero olvidé hacer una implementación vacía de esa segunda subclase en el archivo archivo .m.

¡no olvide implementar ninguna subclase de una subclase que declare en el archivo .h! suena simple, pero fácil de olvidar porque Xcode lo hará por usted si está trabajando con una clase por archivo .h / .m.


1

Tenía "Clase desconocida RateView en Interface Builder", donde RateView era una subclase de UIView. Había dejado caer una UIView en mi escena de Storyboard y cambié el campo de la clase personalizada a RateView. Aún así, apareció este error.

Para depurar, cambié el nombre de mi clase a RateView2 y cambié todas las referencias para que coincidan, excepto el campo Clase personalizada de UIView. El mensaje de error todavía apareció como antes con RateView como la clase que falta. Esto confirmó que el mensaje de error estaba relacionado con el valor del campo Clase personalizada. Cambié este valor a RateView2 y el mensaje de error cambió a "Clase desconocida RateView2 en Interface Builder". Progreso de todo tipo.

Finalmente, inspeccioné los archivos de código fuente en el Inspector de archivos. Allí descubrí que el archivo de código fuente (que había copiado de un tutorial) no estaba asociado con mi Target. En otras palabras, no tenía Membresía Target. Marqué la casilla que hizo que el archivo de código fuente de la clase fuera miembro de la aplicación de destino y el mensaje de error desapareció.


1

En mi caso, había eliminado una clase llamada "viewController" sin darme cuenta de que estaba seleccionada con el inspector de identidad del guión gráfico (en 'Clase personalizada' en la parte superior).

Simplemente tiene que seleccionar la clase correcta para el controlador de vista en el campo Clase personalizada de su inspector de identidad o agregar una nueva clase a su proyecto y seleccionarla como su Clase personalizada.

¡Trabajó para mi!



1

Esto me volvió loco por un momento y ninguna de las sugerencias anteriores me ayudó a deshacerme del error. Afortunadamente, solo tenía un objeto IB que usaba la clase, así que lo eliminé y lo volví a agregar con la misma clase especificada. El error se fue ...

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.