11

我的应用程序的 RootViewController 有问题。当我运行该应用程序时,我收到此错误。这是什么意思?

  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

我在 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

我在 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];

}

RootViewController 最初称为 ViewController,我已更改名称。可以与错误相关吗?我能做些什么?

4

2 回答 2

22

在某个时候,您设置了一个@property. 然后你从你的代码中删除了它,但没有在你的 xib/storyboard 中解开它。您需要在情节提要中找到它,右键单击它,然后删除插座。

于 2012-10-03T15:36:48.350 回答
5

这是另一种可能性:您重命名了您的类,但忘记更改您的 UIViewController 初始化代码。对我来说,是这样的:

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

一旦我用@“NewViewController”替换了字符串@“OldViewController”,问题就消失了。

于 2013-07-25T16:36:19.683 回答