私はXcode 4で作業しており、私のソフトウェアはiPhone 4とシミュレーターでうまく動作しますが、iPhone 2Gや3Gなどのデバイスでテストすると、コードを実行するとすぐにこのエラーが発生します:
キャッチされない例外 'NSUnknownKeyException' が原因でアプリを終了しています。理由: '[ setValue:forUndefinedKey:]: このクラスは、キー rootViewController のキー値コーディングに準拠していません。
問題を解決する方法を探している私はハローワールドプログラムを構築し、iPhone 3gsで動作しません...解決策を検索すると、これが見つかりました:
// self.window.rootViewController = self.viewController; [self.window addSubview: [self.viewController ビュー]];
このようにaddsubviewを使用すると、プログラムは正常に動作するはずです...
Hello World は正常に動作しますが、私のプログラムはまったく動作しません ...
多分これは私が変更すべきコードです...(しかし、私は今は本当に..)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
//this and application should run on 3.1.3
if ([self.window respondsToSelector:@selector(setRootViewController:)])
self.window.rootViewController = self.viewController;
else
[self.window addSubview:self.viewController.view];
// Add registration for remote notifications
[[UIApplication sharedApplication]
registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
// Clear application badge when app launches
//application.applicationIconBadgeNumber = 0;
[self.window makeKeyAndVisible];
return YES;
}
私はこの問題についていくつかの情報を検索しますが、検索するたびに行を変更するだけでした self.window.rootViewController = self.viewController;
しかし、残念ながらあまり役に立ちません。
我慢してくれてありがとう:)
編集 :
私はコードを変更します
if ([self.window respondsToSelector:@selector(setRootViewController:)])
self.window.rootViewController = self.viewController;
else
[self.window addSubview:self.viewController.view];
に
[self.window addSubview:self.viewController.view];
しかし、エラーはまだ同じです...