[UIApplication _runWithMainScene:transitionContext:completion:]闪退的另一种原因

原来项目好好的, 忽然真机运行后出现这个错误, 百度了一下, 有人是在模拟器出现的这个问题, 而我的是在真机上

网上有人对这个错误的原因有解释

原因:新的SDK不允许在设置rootViewController之前做过于复杂的操作,导致在didFinishLaunchingWithOptions 结束后还没有设置rootViewController
Xcode7需要所有UIWindow必须立即先设置一个rootViewController

我的代码:

UINavigationController *rootViewController = [[UINavigationController alloc] initWithRootViewController:[[JSMainViewController alloc] init]];
self.window.rootViewController = rootViewController;

这个JSMainViewController 是一个UITabBarController

我的具体情况是: 公司要求加入一个检查版本的接口, 这个接口加在了JSMainViewController里, 这个JSMainViewController加载检查接口和他的子控制器写在了一起, 当真机运行时,由于不小心,我自己不知道什么时候关闭了蜂窝网, 我的真机没有打开网络

这时加载检查接口就非常的耗时, 继而在didFinishLaunchingWithOptions 结束后还没有设置rootViewController,导致最终程序崩溃

所以, 如果你是真机运行也报这个错误闪退, 你可以检查下你的移动蜂窝网络是否打开

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 132,250评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 167,969评论 26 707
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 30,747评论 18 399
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 9,299评论 6 13
  • 编译报错: No matching function for call to 'connect',原因是信号 QC...
    厝弧阅读 4,208评论 0 0