Этот класс не является ключевым значением, совместимым с кодированием для ключевого представления. '

У меня проблема в AppDelegate, при запуске приложения я получаю эту ошибку:

  Terminating app due to uncaught exception 'NSUnknownKeyException', reason: 
  '[<UIApplication 0x856c820> setValue:forUndefinedKey:]:
   this class is not key value coding-compliant for the key view.'

Это код приложения AppDelegate.h

#import <UIKit/UIKit.h>

@class ViewController;

@interface AppDelegate : UIResponder <UIApplicationDelegate>{

        //UINavigationController *navigationController;
 }

@property (strong, nonatomic) UIWindow *window;


@property (copy, nonatomic) ViewController * viewController;
@property (copy, nonatomic) UINavigationController * navigationController;



 @end

Это код AppDelegate.m

 #import "AppDelegate.h"

 #import "RootViewController.h"



  @implementation AppDelegate



  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:  (NSDictionary *)launchOptions
   {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

        RootViewController *rootMenu;


         if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
              rootMenu= [[RootViewController alloc]  initWithNibName:@"ViewController_iPhone" bundle:nil];
    } else {
              rootMenu = [[RootViewController alloc]initWithNibName:@"ViewController_iPad" bundle:nil];
  }


  self.navigationController =[[UINavigationController  alloc]initWithRootViewController:rootMenu];

  self.window.rootViewController = self.navigationController;

  [self.window makeKeyAndVisible];
   return YES;
 }

Что я могу сделать для устранения этой ошибки? Я переписал RootViewController, бросая в корзину старый, но проблема остается прежней. Спасибо заранее

Ответ 1

Это обычно происходит, когда соединение Interface Builder или Storyboard не было выполнено должным образом. Иногда вы создаете соединение, а затем удаляете код, к которому было подключено соединение. Интерфейс Builder все еще имеет ссылку на код, что приводит к ошибке времени выполнения, зависящей от ключа/значения. Вы также можете получить эту ошибку, если вы не назначили соответствующий класс контроллеру представления. Если вы написали код для определенного контроллера представлений, обязательно установите класс соответствующим образом в Interface Builder для этого View Controller.