app 启动不了 ,停在启动界面 [UIApplication _runWithMainScene:transitionContext:completion:]

最近遇到一个很奇怪 的问题 就是app停在启动页就崩溃掉,并且报报Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3600.9.1/UIApplication.m:3677    ===>Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Application windows are expected to have a root view controller at the end of application launch'  

大概崩溃原因是没有设置程序需要的rootViewController  ,但是 AppDelegate 中确实是设置了,而且- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

self.window.backgroundColor = [ UIColor whiteColor];

if (UserModel.token.length) {

UserModel.userName = [[NSUserDefaults standardUserDefaults] valueForKey:@"userName"];

MainViewController *mainVC = [[ MainViewController alloc]init];

self.window.rootViewController  = mainVC;

}else{

LoginVC *loginVC = [[ LoginVC alloc]init];

self.window.rootViewController  = loginVC;

}

[self.window makeKeyAndVisible];

return Yes;

}

在网上搜了好多资料 发现都是关于rootviewcontroller的设置的问题,但是始终没有找到根源,还有的说是代码太多,didFinishLaunchingWithOptions
方法走完了rootViewcontroller还没设置成功,但是能打印出rootViewController的。

后来终于找到原因,在用户第一次启动时需要弹框,用到了一个自己写的一个弹框类,在显示弹框的时候把 自定义的View 添加到了一个新的window对象上面,并把该window设置为要显示的window,makeKeyAndVisible;造成启动时找不到rootViewController。

注意:不要在程序启动的时候设置新的window

为后续遇到此类问题的朋友提供一种解决问题的思路,也请对该问题有独到见解的朋友一同探讨。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 2,512评论 1 14
  • 概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知...
    莫离_焱阅读 6,539评论 1 8
  • 程序启动原理 掌握 Info.plist和pch文件的作用 UIApplication的常见使用 AppDeleg...
    JonesCxy阅读 828评论 0 1
  • 初识iOS APP开发#### 在iOS APP开发中, main函数仍是程序的入口和出口, 但main函数不需要...
    DeanYan阅读 6,226评论 0 3
  • 关键步骤 一个程序从main函数开始启动。代码如下: int main(int argc, char * argv...
    JzRo阅读 593评论 0 2