Tip-设置rootViewController前不要做过多的操作

178 阅读1分钟

iOS常见错误

  • 提示Assertion failure in -[UIApplication _runWithMainScene:transitionContext:com

  • 我们有个需求是要网络请求后,由服务器返回字段,判断当前的根控制器,然后就在网络请求回调里设置了rootViewController,运行程序直接崩溃,提示信息

Assertion+failure+in+-%5BUIApplication+_runWithMainScene:transitionContext:completion:%5D,+/BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3698.54.4/UIApplication.m:3538

经分析是我在AppDelegate.m 中 didFinishLaunchingWithOptions 这个方法里面设置self.window setRootViewController:前做太多操作导致的

  • 提示:

  • 不允许在设置rootViewController之前做过于复杂的操作,导致在didFinishLaunchingWithOptions 结束后还没有设置rootViewController。

对此我们可以先虚设一个rootViewController。