2011-09-20 2 views
0

Xcode 4와 함께 작동하며 소프트웨어가 iPhone 4 및 시뮬레이터에서 잘 작동하지만 iPhone 2G 또는 3Gs와 같은 장치에서 테스트 할 때 바로이 오류가 발생합니다. 코드 :Xcode 4 iphone 3.1.3 응용 프로그램이 작동하지 않습니다.

캐치되지 않은 예외 'NSUnknownKeyException'로 인해 앱 종료 중 '이유 :'[setValue : forUndefinedKey :] :이 클래스는 키 rootViewController에 대해 키 값 코딩을 준수하지 않습니다. '

내가이있는 솔루션을 찾고 ... 나는 안녕하세요 세계 프로그램을 구축하고 아이폰 3GS에서 작동하지 않는 문제를 해결하는 방법을 검색 :

// self.window.rootViewController = self.viewController; [self.window addSubview : [self.viewController view]];

사용과 같은 addsubview과 잘 실행해야하는 프로그램 ...

아마도 이것이 내가 변경해야합니다 코드는 ... 헬로 세계가 잘 실행하지만 내 프로그램이 전혀 작동하지 않습니다 확인 ... 나는 내가 단지 줄을 변경하는 것으로 검색이 문제지만마다 self.window.rootViewController = self.viewController에 대한 몇 가지 정보를 검색

- (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 addSubview:self.viewController.view]; 

에 코드

if ([self.window respondsToSelector:@selector(setRootViewController:)]) 
    self.window.rootViewController = self.viewController; 
else 
    [self.window addSubview:self.viewController.view]; 

을 변경할 수 있지만 오류가 여전히 동일합니다 : 당신을 위해

들 덕분에 인내 :

EDIT입니다. ..

답변

1

UIWindow에는 iOS 버전이 4.0 미만인 rootViewController 속성이 없습니다. 따라서 이러한 버전을 지원하려면 self.window.rootViewController = myViewController;을 사용할 수 없으므로 일반적으로 제어기의보기를 창에 추가해야합니다. 예 : [self.window addSubview:myViewController.view];

편집 : 문제는 버전을 확인하는 방법이며, 3.1.3이 setRootViewController (public 변수가 아니라 built in 변수)에 응답했을 수 있기 때문입니다.

+0

나는 rootViewController 코드에 주석을 달고'[self.window addSubview : self.viewController.view];를 사용하지만 아무것도 변경하지 않는다 ... 같은 오류 ... 아마도 어딘가에 그 메소드에 대한 다른 호출이있다. – ilmetu

+0

전체 프로그램에서 검색하지만 해당 속성에 대한 다른 호출이 없습니다 ... 여전히 오류 ** [ setValue : forUndefinedKey :] :이 클래스는 키 rootViewController에 대해 키 값을 코딩하지 않습니다. ' ** – ilmetu

관련 문제