NSInvalidUnarchiveOperationException: no se pudo crear una instancia de la clase denominada NSLayoutConstraint


165

Soy muy nuevo en esto. Seguí el tutorial de Apple paso a paso para el proyecto de iPhone "HelloWorld". Lo ejecuté en el simulador de iPhone 5.0 y se bloqueó:

2012-11-02 14: 46: 06.782 HelloWorld [9880: c07] * Finalización de la aplicación debido a una excepción no detectada 'NSInvalidUnarchiveOperationException', razón: 'No se pudo crear una instancia de la clase llamada NSLayoutConstraint' * Pila de llamadas de primer lanzamiento: (0x14a2052 0xea2d0a 0x144aa78 0x14f9f9x9f9x9f9x7ff3 0x32f6b7 0x23036d 0xd7e2c 0xd83a9 0xd85cb 0x38a73 0x38ce2 0x38ea8 0x3fd9a 0x10be6 0x118a6 0x20743 0x211f8 0x14aa9 0x138cfa9 0x14761c5 0x13db022 0x13d990a 0x13d8db4 0x13d8ccb 0x112a7 0x12a9b 0x1fed 0x1f15 0x1) terminar llamado lanzar una excepción (LLDB)

¿Alguien puede decirme qué salió mal? Estoy usando Xcode 4.5.


Debe desactivar la función Autolayout en xib / storyboard
berilio

Respuestas:


575

De manera predeterminada, cuando crea un nuevo proyecto de iOS en Xcode 4.5, su guión gráfico o XIB está configurado para usar Autolayout, que es una nueva característica en iOS 6.0. La NSLayoutConstraintclase es parte del sistema Autolayout, y no existe en versiones anteriores de iOS.

Si desea implementar su aplicación en una versión anterior de iOS, debe cambiar su guión gráfico o XIB para no usar Autolayout. Es una casilla de verificación en el Inspector de archivos:

desactivando el autolayout


29
Usé ScreenFlow para capturar y recortar. Usé Photoshop para convertir el .mov en un .gif.
rob mayoff

¡Esto también se aplica a los xib!
virata

Hacer esto deshabilita la rotación de la vista de vertical a horizontal, incluso teniendo implementados los métodos. ¿Cómo resolvió el problema si todavía desea que tenga lugar la rotación? Gracias de antemano, y ... un buen gif ^^
Agit

@robmayoff gracias por el gif y la respuesta perfecta. mi problema se resolvió en un segundo. :)
ishhhh

Me gustó esto, así que creé el mío para puntos de interrupción de excepción. rsaunders.co.uk/2013/06/add-exception-breakpoint.html
Robert

21

Su archivo Xib (archivo generador de interfaz) contiene elementos de AutoLayout, que iOS 5 no admite.

En Xcode, vaya a su (s) archivo (s) .xib y, para cada uno, desactive AutoLayout. Debería haber una casilla de verificación en el lado izquierdo que diga "Usar diseño automático", desmarque e intente nuevamente. (Esto está debajo de la primera pestaña en el inspector del lado izquierdo, cuando tiene el propietario del archivo) seleccionado.


8

Me topé con este error cuando estaba trabajando en un proyecto anterior que quería actualizar. Había seleccionado la casilla de verificación "Usar Autolayout" para comenzar a trabajar con restricciones, pero me había olvidado de actualizar mi configuración de Destino de implementación a iOS 6.


7

Necesitas ejecutarlo en el simulador de iPhone 6.0. Su error:

* Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint' *

Sugiere que está utilizando autolayout, que solo funciona en iOS 6.

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.