ViewDidLoad在AppDelegate didFinishLaunchingWithOptions执行之前运行!

我正在遇到一个奇怪的问题,方法“ViewDidLoad”运行之前,AppDelegate的didFinishLaunchingWithOptions执行! 原因我只检查数据库是否存在于“didFinishLaunchingWithOptions”我的应用程序崩溃,如果数据库不存在。 经过几个小时的讨论,我厌倦了这样做,并呼吁HEEEEELP! 如果你愿意,可以这么和善地指出我的方向是什么,我的项目可能是错的。 我不知道(aaarggh!)

谢谢!

最好的问候汤姆

viewDidLoad可以在从NIB加载的ViewController上运行,因为它们在调用didFinishLaunchingWithOptions之前加载:

我有同样的问题,并更详细地查看代码后,我已经发现,在一个xViewController awakeFromNib ,我正在启动另一个yViewController。 所以yViewController的viewDidLoaddidFinishLaunchingWithOptions:之前运行didFinishLaunchingWithOptions:

基本上,最初的VC的awakeFromNibdidFinishLaunchingWithOptions:之前被调用。 你可能有类似的设置。 看看那个。

如果你的数据库文件加载速度不够快, 重写你的AppDelegate的init():

 override init() { if filesExistBool == false { addDBFiles() } } 

我不相信你

application:didFinishLaunchingWithOptions:你决定加载哪些视图。 该应用程序不会随机加载视图,而不会告诉它这样做。 你有没有在viewDidLoad首先放置一个断点application:didFinishLaunchingWithOptions:或者你只是假设application:didFinishLaunchingWithOptions:没有得到执行,因为它不工作。