ios - unreachable - Información de clase desconocida en el archivo de Interface Builder
try catch swift 4 (7)
Tiendo a ver este tipo de errores cuando cambias el nombre de tu vista y ves clases de controlador después de personalizar una vista o controlador en el Constructor de Interfaz a esa clase. Repasaba sus vistas y controladores en su punta o guión gráfico para ver si sus clases personalizadas aún existen y coinciden en consecuencia.
Se encontrará con problemas con los archivos IB cuando renombre o elimine el código subyacente sin actualizar el archivo IB. Se produce un problema similar al eliminar o cambiar el nombre de IBOutlets después de vincularlos a un objeto en Interface Builder. Aún tendrá la referencia en Interface Builder a menos que la elimine explícitamente.
Por último, puede ver el archivo IB como un archivo de texto. Es un documento xml, donde verá todas las referencias de clase. Puedes ver si hay clases allí que quizás ya no existan en tu proyecto.
como en el título me dieron un masaje loco y no puedo manejarlo
Unknown class info in Interface Builder file.
Cada vez que ejecuto mi proyecto aparecerán algunos bichos raros o desaparecerán algunos. ¿Alguien sabe qué hacer?
La advertencia puede deberse a que ha asignado un nombre de clase personalizado eliminado / eliminado para una de las subclase de UIView. Para arreglar tales escenarios,
Open interface builder class as Source Code by right clicking on it (Open As -> Source Code).
Find your unknown class name in the source file. And handle accordingly.
Funcionó para mí
Pruebe esto, en orden:
- Producto-> Limpio en Xcode
- Eliminar la aplicación del simulador o dispositivo
- Reiniciar Xcode
- (Build &) Ejecutar nuevamente
Si esto no ayuda, es probable que tengas una referencia a una clase en la punta o guión gráfico que tienes que encontrar y eliminar manualmente.
Esto también ocurre si elimina ClassName.m de Build Fhases / Compile Sources
Volveré a plantear el problema, con un poco de contexto de mi parte, y luego proporcionaré la solución:
Creé un marco Swift personalizado e importé el proyecto marco en el espacio de trabajo. Luego, convertí el framework en una dependencia de destino para mi aplicación Swift. Finalmente, hice referencia a una clase del framework en el constructor de Interface.
Seguí obteniendo el error de clase no encontrada, y noté en el depurador que tenía la clase de salida era la contraparte ObjC mutilada / no marcada.
La solución :
Simplemente agregue su encabezado de marco a su encabezado de puente ObjC:
#import <MazKit/MazKit-Swift.h> // In my case, MazKit
Ahora, los símbolos se exportan, y usted puede verificarlos mediante cmd + clic en el mismo encabezado, y verá los nombres de las clases destrozadas / no desactivadas.
Proyecto -> General -> Información de implementación -> Interfaz principal <- borre este campo.
Parece que ha eliminado el archivo Main (Storyboard) pero todavía tiene referencias en las propiedades del proyecto.
Ver mi respuesta a https://.com/a/29013058/784318
Me encontré con este problema hoy usando Swift.
Cambié una clase
Model.h + Model.m
aModel.swift
. Este objeto se usó en Interface Builder con laclass = Model
.Tan pronto como reemplacé el objeto, ya no se pudo cargar la clase.
Lo que tuve que hacer fue cambiar la referencia de clase en IB de:
Class = Model Module =
a
Class = Model Module = <TARGETNAME>
Encontrará el
<TARGETNAME>
en la configuración de compilación. También es el nombre que aparece en su encabezado Swift generado:#import "TARGETNAME-Swift.h"