Этот класс не является ключевым значением, совместимым с кодированием для ключевого представления. '
У меня проблема в 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.
Ответ 2
Я знаю, что этот вопрос немного устарел, но я столкнулся с той же проблемой, и статья ниже помогла. В основном это иллюстрирует шаг за шагом, как исправить описанную проблему @bgolson.
http://www.tech-recipes.com/rx/52021/how-do-i-fix-the-issue-this-class-is-not-key-value-coding-compliant-for-the-key-in-xcode-6/