Iphone ViewDidLoad在执行AppDelegate didFinishLaunchingWithOptions之前运行!

Iphone ViewDidLoad在执行AppDelegate didFinishLaunchingWithOptions之前运行!,iphone,objective-c,xcode,ios,delegates,Iphone,Objective C,Xcode,Ios,Delegates,我遇到了一个奇怪的问题,方法“ViewDidLoad”在AppDelegate的didFinishLaunchingWithOptions执行之前运行! 因为我只检查“didFinishLaunchingWithOptions”中是否存在数据库。如果数据库不存在,我的应用程序将崩溃。在闲逛了几个小时后,我厌倦了这样做,于是打电话给heeeelp! 如果你能这么好,并指出我的方向是正确的,我的项目可能会有什么问题。我想不出来(啊!) 谢谢大家! 致意 汤姆,我不相信你 在application:d

我遇到了一个奇怪的问题,方法“ViewDidLoad”在AppDelegate的didFinishLaunchingWithOptions执行之前运行! 因为我只检查“didFinishLaunchingWithOptions”中是否存在数据库。如果数据库不存在,我的应用程序将崩溃。在闲逛了几个小时后,我厌倦了这样做,于是打电话给heeeelp! 如果你能这么好,并指出我的方向是正确的,我的项目可能会有什么问题。我想不出来(啊!)

谢谢大家!

致意 汤姆,我不相信你


application:didfishlaunchingwithoptions:
中,您可以决定加载哪些视图。如果您不告诉应用程序,它将不会随机加载视图。您是否在
viewDidLoad
中首先放置了一个断点,在
应用程序:didFinishLaunchingWithOptions:
中首先放置了一个断点,或者您只是假设
应用程序:didFinishLaunchingWithOptions:
没有执行,因为它不工作。

viewDidLoad可以在从NIB加载的ViewController上运行,因为这些控件以前都是加载的调用didFinishLaunchingWithOptions:

我也有同样的问题,在更详细地查看代码后,我发现在一个xViewController的NIB中,我正在启动另一个yViewController。因此,yViewController的
viewdiload
didfishlaunchingwithoptions:
之前运行


基本上,初始VC的
awakeFromNib
完成启动之前调用,选项为:
。您可能有类似的设置。看看这个。

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


您如何检查数据库的存在。显示代码会有所帮助。发布一些appDidFinishLaunching的代码,如果未创建数据库,则创建它。如果您来自后台,则不会运行didFinishLaunchingWithOptions,以防您不知道。我很乐意发布一些代码,但由于appDidFinishLaunching从未执行过,我怀疑它是否能解释这个问题,因为问题出在其他地方……如果应用程序没有第一手崩溃,它最终会进入“application:didFinishWithOptions”,但在我的代码在ViewController“viewDidLoad”中中断后,因为没有复制数据库,它不会执行“application:didFinishLaunchingWithOptions”(复制数据库的地方)我只是对“应用程序:didFinishWithOptions”不再以正确的顺序(如第一次)运行这一事实感到困惑,我感兴趣的是您如何再次将其更改为正确的顺序……有没有办法阻止它?
override init() {
    if filesExistBool == false {
        addDBFiles()
    }
}