关于xcode7编译旧项目崩溃-[UIApplication _runWithMainScene:transitionContext:completion:]
崩溃原因
crash:
Assertion failure in
-[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-
(
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', `enter code here`reason: 'Application windows are expected to have a root
view controller at the end of application launch'
*** First throw call stack:
)
尝试解决方案一:
// *************代码做调整,加入到下一个loop周期中,再次运行代码,程序正常。******//
- (void)applicationDidBecomeActive:(UIApplication *)application { // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. //crash in ios9 _testWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; _testWindow.hidden = NO; //ok // dispatch_async(dispatch_get_main_queue(), ^{ // _testWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; // _testWindow.hidden = NO; // }); }
Or
尝试解决方案二:
Xcode7 需要所有的窗口都必须有根控制器
XCODE 7 requires that all the Windows must have a rootViewController You can use easy:
UIViewController* vc = [[UIViewController alloc]initWithNibName:nil bundle:nil]; self.window.rootViewController = vc;
It's working good if you need to use only UIWindow (for easy examples from any Tutorials - before Xcode 7)!