2012-10-03 14 views
5

Tengo un problema con el RootViewController de mi aplicación. Cuando ejecuto la aplicación obtengo este error. ¿Qué significa?esta clase no es un valor clave que cumpla con la codificación de la imagen imageView

NSUnknownKeyException', reason: '[<UIApplication 0x8634010> setValue:forUndefinedKey:]:  this class is not key value coding-compliant for the key bigImageView.' 
First throw call stack: 
(0x1992012 0x1357e7e 0x1a1afb1 0xe04711 0xd85ec8 0xd859b7 0xdb0428 0x4bc0cc 
0x136b663 0x198d45a 0x4babcf 0x4bc98d 0x29eceb 0x29f002 0x29ded6 0x2af315 0x2b024b 
0x2a1cf8 0x1dbedf9 0x1dbead0 0x1907bf5 0x1907962 0x1938bb6 0x1937f44 0x1937e1b 0x29d7da 0x29f65c 0x2c6d 0x2b95) 
libc++abi.dylib: terminate called throwing an exception 

Mi código en RootViewController.h

#import <UIKit/UIKit.h> 


    @interface RootViewController : UIViewController <UIGestureRecognizerDelegate>{ 

    } 

@property (nonatomic, copy)IBOutlet UIImageView * bigImageView; 
@property (nonatomic, assign)BOOL fromRootViewController; 


- (void)handleTap:(UITapGestureRecognizer *)recognizer; 



@end 

Mi código en RootViewController.m

#import "RootViewController.h" 
    #import "MenuViewController.h" 

    @interface RootViewController() 

    @end 

    @implementation RootViewController 

    @synthesize bigImageView; 
    @synthesize fromRootViewController; 

    - (void)viewDidLoad 
    { 
     [super viewDidLoad]; 
     UIDeviceOrientation deviceOrientation = [[UIDevice currentDevice]orientation]; 

      if(deviceOrientation == UIInterfaceOrientationPortrait || deviceOrientation== UIInterfaceOrientationPortraitUpsideDown) { 
    self.bigImageView= [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"milanocina_V.png"]]; 

} 
else if (deviceOrientation== UIInterfaceOrientationLandscapeRight){ 
    self.bigImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"milanocina_O.png"]]; 

} 
else if (deviceOrientation==UIInterfaceOrientationLandscapeLeft){ 

    self.bigImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"milanocina_O.png"]]; 



} 

[self.view addSubview:self.bigImageView]; 

UITapGestureRecognizer * recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; 
recognizer.delegate = self; 
[self.view addGestureRecognizer:recognizer]; 

} 

El RootViewController inicialmente llamada ViewController y he cambiado el nombre. Se puede correlacionar con el error? ¿Que puedo hacer?

+1

¿Notó que el mensaje de error dice que está tratando de establecer esa propiedad en 'UIApplication' ... Todo el código del mundo en' RootViewController' no hará la diferencia. Apuesto a que hay un enlace defectuoso en su archivo XIB. Los enlaces malos aparecerán con pocos puntos de explicación. – borrrden

+0

¿Cómo puedo encontrar la mala conexión? –

+0

No sé si esto está causando su problema, pero está haciendo algo mal con bigImageView. Usted lo define como un IBOutlet, pero luego lo asigna a las instancias creadas en el código. Si está conectando en IB a un ImageView que tiene allí, entonces el código anulará eso. Probablemente no deba ser un IBOutlet, ya que necesita que sean diferentes según la orientación. – rdelmar

Respuesta

3

Aquí hay otra posibilidad: cambió el nombre de su clase, pero se olvidó de cambiar su código de inicialización UIViewController. Para mí, fue la siguiente:

NewViewController *vc; 
vc = [[NewViewController alloc] initWithNibName:@"OldViewController" bundle:nil]; 

Una vez que sustituye la cadena @ "OldViewController" con @ "NewViewController", el problema desapareció.

14

En algún punto, configura un @property. Luego lo eliminó de su código pero no lo desenganchó en su xib/storyboard. Debe encontrarlo en su guión gráfico, haga clic con el botón derecho y elimine el marcador.

Cuestiones relacionadas