ViewDidLoad在AppDelegate didFinishLaunchingWithOptions执行之前运行!
我正在遇到一个奇怪的问题,方法“ViewDidLoad”运行之前,AppDelegate的didFinishLaunchingWithOptions执行! 原因我只检查数据库是否存在于“didFinishLaunchingWithOptions”我的应用程序崩溃,如果数据库不存在。 经过几个小时的讨论,我厌倦了这样做,并呼吁HEEEEELP! 如果你愿意,可以这么和善地指出我的方向是什么,我的项目可能是错的。 我不知道(aaarggh!)
谢谢!
最好的问候汤姆
viewDidLoad可以在从NIB加载的ViewController上运行,因为它们在调用didFinishLaunchingWithOptions之前加载:
我有同样的问题,并更详细地查看代码后,我已经发现,在一个xViewController awakeFromNib
,我正在启动另一个yViewController。 所以yViewController的viewDidLoad
在didFinishLaunchingWithOptions:
之前运行didFinishLaunchingWithOptions:
基本上,最初的VC的awakeFromNib
在didFinishLaunchingWithOptions:
之前被调用。 你可能有类似的设置。 看看那个。
如果你的数据库文件加载速度不够快, 重写你的AppDelegate的init():
override init() { if filesExistBool == false { addDBFiles() } }
我不相信你
在application:didFinishLaunchingWithOptions:
你决定加载哪些视图。 该应用程序不会随机加载视图,而不会告诉它这样做。 你有没有在viewDidLoad
首先放置一个断点application:didFinishLaunchingWithOptions:
或者你只是假设application:didFinishLaunchingWithOptions:
没有得到执行,因为它不工作。