gratis desbloquear desactivar comprobar como buscar bloqueo apple activaciĆ³n activacion iphone xib key-value-coding

desbloquear - desactivar bloqueo de activacion iphone



AplicaciĆ³n de iPhone que se bloquea con NSUnknownKeyException setValue: forUndefinedKey: (8)

Estoy escribiendo mi primera aplicación para iPhone, por lo que no he podido averiguar mucho sobre la forma de depuración. Esencialmente, mi aplicación muestra una imagen y cuando se toca reproduce un sonido corto. Al compilar y construir el proyecto en XCode, todo se desarrolla con éxito, pero cuando la aplicación se ejecuta en el simulador de iPhone, se bloquea.

Obtuve el siguiente error:

Application Specific Information: iPhone Simulator 1.0 (70), iPhone OS 2.0 (5A331) *** Terminating app due to uncaught exception ''NSUnknownKeyException'', reason: ''[<UIView 0x34efd0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key kramerImage.''

kramerImage aquí es la imagen que estoy usando para el fondo.

No estoy seguro de qué significa NSUnknownKeyException ni de por qué la clase no cumple con la codificación de valor clave para la clave.


Además, cuando cambia el nombre de una vista, no olvide eliminar la referencia en el propietario del archivo. También puede provocar este error.


Aquí hay uno donde obtendrá este error y cómo solucionarlo. Lo estaba obteniendo cuando cargaba un plumín que solo tenía una TableViewCell personalizada. Usé IB para construir un xib que solo tenía el propietario del archivo, el primer respondedor y el TableViewCell. El TableViewCell acaba de tener 4 UILabels que coinciden hasta una clase con 4 IBOutlet UILabels llamada rootCell. Cambié la clase de TableViewCell para que fuera rootCell. Funcionó bien hasta que hice un par de cambios y de repente recibí el setValue: forUndefinedKey: cuando estaba creando una instancia de la clase después de cargarla desde un plumín:

NSArray * nib = [[NSBundle mainBundle] loadNibNamed:@"rootCell-iPad" owner:self options:nil]; cell = [nib objectAtIndex:0];

Falló en la primera línea, cuando la punta estaba tratando de cargar. Después de un tiempo, noté que estaba tratando de hacer coincidir las etiquetas de IBOutlet con el controlador raíz, NO con la clase rootCell. Esa fue mi información. Lo que hice mal fue cambiar inadvertidamente el propietario del archivo a la clase rootCell. Cuando lo cambié de nuevo a NSObject, no intenté hacer coincidir el delegado (controlador raíz) al cargar. Por lo tanto, si está haciendo lo anterior, haga del propietario del archivo un NSObject, pero haga de UITableCell la clase que desee.


Parece que estás haciendo

@interface MyFirstIphoneAppViewController : UIViewController<> { UIImageView *InitialkramerImage; } @property(nonatomic,retain) IBOutlet UIImageView *InitialkramerImage;

Luego, después de sintetizar esa vista de imagen, cuando abre "MyFirstIphoneAppViewController.xib" en Interface Builder, está tomando una Vista de imagen desde Tool (menú) / Library den vinculando esa salida a la ''InitialkramerImage'' del propietario de archivos de "MyFirstIphoneAppViewController.xib" . Luego guardaste el proyecto. Pero después de eso, puede cambiar el nombre de la variable de salida "InitialkramerImage" por "kramerImage". Entonces, después de hacer esto

@interface MyFirstIphoneAppViewController : UIViewController<> { UIImageView *kramerImage; } @property(nonatomic,retain) IBOutlet UIImageView *kramerImage;

y guardando el proyecto cuando lo ejecuta, no existe la salida de "InitialkramerImage" en "MyFirstIphoneAppViewController.xib". Por lo tanto, cuando ejecute el proyecto no habrá referencia de salida de Imageview a ''kramerImage'' y

"Para mostrar la vista, UIViewController intentará encontrar la salida a" InitialkramerImage "que no existe".

Por lo tanto, arrojará la "NSUnknownKeyException".

Puede verificar la salida faltante abriendo el archivo nib (.xib) y luego haciendo clic derecho en el "Propietario de archivos" de eso.


(Esto no es realmente específico de iPhone; lo mismo sucederá en el cacao normal).

NSUnknownKeyException es un error común al usar la codificación de clave-valor para acceder a una clave que el objeto no tiene.

Las propiedades de la mayoría de los objetos de Cocoa pueden acceder directamente:

[@"hello world" length] // Objective-C 1.0 @"hello world".length // Objective-C 2.0

O a través de la codificación clave-valor:

[@"hello world" valueForKey:@"length"]

Me gustaría obtener una NSUnknownKeyException si utilizo la siguiente línea:

[@"hello world" valueForKey:@"purpleMonkeyDishwasher"]

porque NSString no tiene una propiedad (clave) llamada ''purpleMonkeyDishwasher''.

Algo en su código está tratando de establecer un valor para la clave ''kramerImage'' en un UIView, que (al parecer) no admite esa clave. Si está utilizando Interface Builder, podría ser algo en su plumín.

Encuentre dónde se usa ''kramerImage'' e intente rastrearlo desde allí.


Si ha hecho este código en otro lugar y tiene un archivo zip / comprimido, intente extraerlo de nuevo. Puede funcionar. No sé por qué pero siento que es un problema de extracción.

o puede intentar cambiar la IBOutlet a kramerImage y vincularla de nuevo en NIB.


Tuve esta situación y resulta que incluso después de encontrar todas las instancias de la variable y borrarlas, mi aplicación aún se colgó. Aquí está lo que sucedió ... Creé otra instancia de una variable de un campo de texto de mi XIB en mi viewController.h pero me di cuenta de que ya no la necesitaba y la eliminé. Resultó que mi programa vio eso y siguió tratando de usarlo en el programa, así que en el futuro si esto sucede en cualquier otro lugar, ingresa en tu XIB. Haz clic derecho en el botón o en el campo de texto, etc. y elimina cualquier variable adicional no utilizada.


Tuve el mismo problema hoy. No tenía la clase correcta especificada para el controlador de vista en mi controlador de navegación. Esto sucederá a menudo si no especifica la clase correcta para sus vistas en Interface Builder.

También recibirá problemas con el selector no válido. ¡Siempre revisa tus clases y conexiones de Interface Builder!


Así es como resolví el mío, en el constructor de Interfaz, haga clic derecho en Ver Controlador, debería haber un signo de exclamación en el método de salida o acción faltante. Encuentra y elimina todas las referencias y eso lo resolvió.

Esto sucedió porque eliminé el método de acción en el archivo .m.