我遇到一个奇怪的问题,方法“ViewDidLoad”在AppDelegate的didFinishLaunchingWithOptions执行之前运行! 因为我只检查“didFinishLaunchingWithOptions”中是否存在数据库,如果数据库不存在,我的应用程序崩溃。经过几个小时的闲逛后,我厌倦了这样做,并呼吁HEEEEELP! 如果你愿意,可以如此友善,并指出我正确的方向,我的项目可能会出错。我无法弄明白(aaarggh!)
谢谢!
祝你好运 汤姆
答案 0 :(得分:3)
viewDidLoad可以在从NIB加载的ViewControllers上运行,因为这些是在调用didFinishLaunchingWithOptions之前加载的:
答案 1 :(得分:0)
我遇到了同样的问题,在详细查看代码之后,我发现在xViewController的awakeFromNib
内,我正在启动另一个yViewController。所以yViewController的viewDidLoad
在didFinishLaunchingWithOptions:
之前运行。
基本上,在awakeFromNib
之前调用初始VC didFinishLaunchingWithOptions:
。您可能有类似的设置。看看那个。
答案 2 :(得分:0)
如果您的数据库文件加载速度不够快;覆盖你的AppDelegate的init():
override init() {
if filesExistBool == false {
addDBFiles()
}
}
答案 3 :(得分:-1)
我不相信你。
在application:didFinishLaunchingWithOptions:
中,您决定加载哪些视图。该应用程序不会随意加载视图而不会告诉它这样做。您是否先在viewDidLoad
中放置一个断点,在application:didFinishLaunchingWithOptions:
中放置一个断点,或者您只是假设application:didFinishLaunchingWithOptions:
没有执行,因为它无效。