내 iPhone 4에서 해당 기기에서 가능한 최신 iOS (7.1.2)를 사용하여 Xcode 7.3.1을 사용하여 원본 (Objective-C) Master-Detail Application 템플릿을 실행하면 충돌이 발생합니다. 아마 iOS 9.3으로 설정된 Base SDK를 변경할 수는 없지만 올바른 Architecture 및 Deployment Target을 사용하고 있습니다. 왜 추락합니까?iOS 7.1.2를 실행하는 iPhone 4에서 Master-Detail Application 템플릿이 왜 충돌합니까?
충돌 코드 :
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
/**CRASH**/navigationController.topViewController.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem;
splitViewController.delegate = self;
return YES;
}
디버거는 말한다 :
이2016-08-04 21:14:26.240 Master-Detail-Application-2[766:60b] -[MasterViewController topViewController]: unrecognized selector sent to instance 0x16d61c20
2016-08-04 21:14:26.246 Master-Detail-Application-2[766:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MasterViewController topViewController]: unrecognized selector sent to instance 0x16d61c20'
*** First throw call stack:
(0x30dbef83 0x3b56fccf 0x30dc2917 0x30dc1203 0x30d10768 0x396a7 0x3364b587 0x3364aedb 0x3364556b 0x335e16e9 0x335e0851 0x33644ca9 0x35bf9aed 0x35bf96d7 0x30d89a67 0x30d89a03 0x30d881d7 0x30cf2ebf 0x30cf2ca3 0x33643ed1 0x3363f14d 0x3a945 0x3ba7cab7)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
'topViewController'는'UIViewController'가 아니라'UINavigationController'의 메소드입니다. – rmaddy
@maddy 그것이 코드에서 보는 것입니다. 맞습니다. –
하지만 오류는 'UINavigationController'가 아니라 'MasterViewController'에서'topViewController'를 호출하려고한다는 것을 나타냅니다. – rmaddy