didFinishLaunchingwithOptions 在awakeFromNib 之后调用

S.J*_*S.J 0 objective-c ios uistoryboard appdelegate

苹果文档说:

在显示初始视图控制器之前,会调用您的应用程序委托,让您有机会配置视图控制器。

但这实际上并没有发生。

  1. 我在 Xcode 中使用single view template.
  2. ViewController.m我添加awakeFromNib方法和里面我只是NSLog(@"VC").
  3. 然后AppDelegatedidFinishLaunchingwithOptions我只是NSLog(@"AD")
  4. 当我运行项目时,ViewController先执行AppDelegate
  5. 没有故事板didFinishLaunchingwithOptions方法总是首先执行,我能够配置所有 ViewController 可以使用的数据库和其他初始内容,但现在我无法做到这一点。
  6. ViewController.m首先执行,我的数据库设置在didFinishLaunchingWithOptions.

出了什么问题?

jrt*_*ton 5

没有任何问题。加载故事板时调用awakeFromNib 。文档说明“在显示初始视图控制器之前”。

您可能正在使用awakeFromNib 做一些不合适的事情,但没有更多信息没人知道

使用故事板的应用程序生命周期与使用笔尖略有不同。使用笔尖,您可以在didFinishLaunching. 有了故事板,在didFinishLaunching调用之前就为您完成了。然后您可以self.window.rootViewController在该方法中访问以获取您的初始视图控制器。

问题的关键仍然是,awakeFromNib不是一个好地方,做象响应数据库正在建立或查询值什么。您的视图尚未加载。您应该在生命周期的后期做这些事情。