Recientemente me actualicé a Xcode 8 y tengo problemas con el Storyboard.
Si abro el proyecto y no tengo el Storyboard abierto, se compilará y funcionará bien. Una vez que abro el Storyboard, recibo múltiples errores sobre los Designables de IB como se muestra a continuación.
Estas vistas son las únicas vistas que usan vistas personalizadas TextFieldEffects
y BEMCheckbox
que importé usando Cocoapods.
ios
xcode8
xcode-storyboard
Alan
fuente
fuente
Respuestas:
Puede probar uno de los siguientes para descubrir la causa:
IBDesignablesAgentCocoaTouch
registros en este directorio:~/Library/Logs/DiagnosticReports
y vea la causa.Vaya al Editor -> Depurar vista seleccionada mientras selecciona su
@IBDesignable UIView
en su guión gráfico y vea el seguimiento de la pila.Eliminar la carpeta Derivar datos.
Limpia tu proyecto
Shift
+Command
+Alt
+K
.Construye tu proyecto
Command
+B
.fuente
Fatal error: Use of unimplemented initializer 'init(frame:)' for class 'TestIBKit.Button'
. No sabía que eseIBDesignablesAgentCocoaTouch
proceso llamainit(frame:)
, en lugar deinit?(coder aDecoder:)
.init(frame:)
en mi subclaseResolví el problema haciendo lo siguiente:
File > Workspace settings
.DerivedData
carpeta.DerivedData
carpeta y elimine la carpeta correspondiente a su proyecto.Editor > Refresh all views
.Actualizado
A veces simplemente directamente Ir a
Editor > Refresh all views
trabajar. SiRefresh all views
está deshabilitado, salga de Xcode e intente nuevamente.fuente
Simplemente elimino la vista que falló y presiono comando + Z para deshacer la eliminación. Esto funciona para mi.
Si edita la vista fallida más tarde, el error puede ocurrir nuevamente, haga lo anterior nuevamente.
fuente
Me enfrenté a este problema en CocoaPod 1.5.0. La solución es reinstalar el pod nuevamente (instalar el pod nuevamente) una vez que aparezca este error o puede usar CocoaPod 1.4.0 en su lugar. Funciona bien en 1.4.0 (al menos para mí).
actualizar:
Agregar el siguiente script en Podfile me ayuda a resolver el problema en 1.5.0
referencia: https://github.com/Skyscanner/SkyFloatingLabelTextField/issues/201#issuecomment-381915911
fuente
s work for me, you should add
end` para durar de código.Agregar el siguiente código a mi
@IBDesignable
clase hizo el truco.fuente
UITextView
. (1)init(frame: CGRect, textContainer: NSTextContainer?)
, (2)init?(coder aDecoder: NSCoder)
. Luego reconstruir y advertencia (error) desaparecido. Ni siquiera es necesario limpiar la carpeta de compilación.Para cualquier persona, como yo, que no puede encontrar ese
IBDesignablesAgentCocoaTouch
archivo o cuando intenta "Depurar vistas seleccionadas" del Editor obtiene un error, aquí hay otra forma de depurar esos errores "Error al procesar".Abra la aplicación 'Consola', desde la barra lateral seleccione su Mac actual (probablemente se seleccionará automáticamente de forma predeterminada) y luego en la barra de búsqueda busque "IBSceneUpdate" y presione enter.
De esta manera, cada vez que obtenga un error de Xcode por
IBDesignable
no poder renderizar, también obtendrá una nueva entrada "IBSceneUpdate" con más detalles sobre el error.¡Al menos así pude depurar mis
IBDesignable
errores!fuente
Si está utilizando el archivo xib para uiview personalizado. Prueba esto:
Cambiar de
A:
fuente
Intente deshabilitar 'Usar variaciones de rasgos' (panel Identidad y tipo) para cualquier archivo xib que pueda tener para vistas personalizadas que se utilizan en su guión gráfico.
fuente
mi problema se resolvió eliminando carpetas (que está relacionado con este proyecto) de la carpeta de datos derivados. puede hacer esto haciendo clic en Archivo -> Configuración del proyecto -> luego haga clic en el signo de flecha deside /Users/.../Xcode/DerivedData haga clic en la carpeta DerivedData, verá que su proyecto elimina las carpetas con nombre. salga de xcode al abrir su proyecto, limpie el proyecto utilizando este paso Producto-> limpiar y luego compile el proyecto: Producto-> Compilar Estos resolverán estos problemas.
fuente
Respuesta correcta proporcionada por @Maria :
Forma alternativa :
Spotlight
console.app
Crash reports
IBDesignablesAgent-iOS
y revise el registro de fallasfuente
Simplemente abra su guión gráfico -> Editor -> Actualizar todas las vistas. Este trabajo para mi.
fuente
Intenté limpiar y ejecutar el proyecto no resolverá este problema.
Pero Cerrar y reabrió el proyecto lo hizo.
fuente
Cuando depuré esto descubrí que hay algunas clases que están modificando la interfaz de usuario. Por lo general, marquelabel, que es una subclase de UILabel o cualquier otra clase que subclasifique UIView y dibuje ui en tiempo de ejecución y colisione con el motor Autolayout. Intente dar ancho o alto fijo para estas vistas personalizadas. Si no resuelve su problema, intente las siguientes soluciones: -
Solución 1: - Descomente #use_frameworks dentro de su archivo pod.
Solución 2: intente eliminar datos derivados
fuente
Tuve el mismo problema y vine aquí para tratar de averiguar qué pasó. Noté la respuesta mejor calificada y la respuesta en sí misma no me ayudó, ya que IBDesignable no existía en la carpeta de registro y ya intenté todas las demás opciones allí, sin embargo, en los comentarios noté que alguien hablaba de un inicio de marco.
Decidí intentar comentar mi extensión IBDesignable para UIView y al instante solucionó el problema. Entonces, para solucionar esto, encuentre la extensión que causa el problema y asegúrese de configurar los inits necesarios creando una clase IBDesignable y proporcionando los inicializadores necesarios de la siguiente manera:
IMPORTANTE: recuerde agregar la nueva clase al elemento en el que está utilizando el designado.
fuente
Enfrentado el mismo error: había personalizado UITextField y utilizando el generador de interfaces, el error en la consola fue -Uso del inicializador no implementado 'init (frame :)' para la clase "CustomField"
Se agregó el inicializador para corregir el error
fuente
Enfrenté este problema después de actualizar a la última versión de XCode. Después de probar la solución múltiple descrita anteriormente, solo hice bastante Xcode y luego apagué el sistema y lo encendí y eso funcionó para mí.
fuente
Después de realizar los cambios necesarios, cambie el guión gráfico o, en mi caso, un .xib para abrir en "XCode 7", guarde y cierre. Esta es solo una medida provisional para abordar los errores, pero en última instancia, deberá corregirlos o hacer esto hasta que ya no pueda hacerlo.
fuente
En mi caso, estaba usando una biblioteca que estaba subclasificando
UIView
. Estaba usandoIB_DESIGNABLE
, y faltaba llamar a[super awakeFromNib]
. Una vez que agregué la llamada a este método, el error desapareció.No estoy seguro de si el hecho de que se estaba implementando
IB_DESIGNABLE
tuvo un impacto en esto.fuente
Esta es la forma más fácil para mí: agregue este script a su
Podfile
Podfile:
Fuente:
Esta solución alternativa para @IBDesignable se puede encontrar aquí: https://github.com/CocoaPods/CocoaPods/issues/5334
fuente