ViewDidLoad запускается до запуска AppDelegate didFinishLaunchingWithOptions! - PullRequest
0 голосов
/ 26 мая 2011

Я испытываю странную проблему, когда метод "ViewDidLoad" запускается до того, как AppFeishate's didFinishLaunchingWithOptions будет выполнен!Причина. Я только проверяю, существует ли база данных в «didFinishLaunchingWithOptions», мое приложение аварийно завершает работу, если базы данных там нет.после нескольких часов ковыряния я устал от этого и призываю к HEEEEELP!Пожалуйста, будьте любезны и укажите мне правильное направление, что может быть не так с моим проектом.Я не могу понять (аааааа!)

Спасибо!

С наилучшими пожеланиями Том

Ответы [ 4 ]

3 голосов
/ 22 июня 2011

viewDidLoad может работать на ViewControllers, загруженных из NIB, так как они загружаются перед вызовом didFinishLaunchingWithOptions:

0 голосов
/ 09 ноября 2017

Если файлы вашей базы данных загружаются недостаточно быстро;переопределить init () вашего AppDelegate:

override init() {
    if filesExistBool == false {
        addDBFiles()
    }
}
0 голосов
/ 16 октября 2014

У меня была такая же проблема, и после более детального изучения кода я обнаружил, что внутри awakeFromNib xViewController я запускаю другой yViewController.Таким образом, viewDidLoad yViewController работает до didFinishLaunchingWithOptions:.

По сути, начальный VC's awakeFromNib вызывается до didFinishLaunchingWithOptions:.У вас может быть что-то похожее на установку.Посмотри на это.

0 голосов
/ 26 мая 2011

Я вам не верю.

В application:didFinishLaunchingWithOptions: вы сами решаете, какие виды загружать.Приложение не будет случайным образом загружать просмотры без вашего ведома.Вы ставили точку останова сначала в viewDidLoad и одну сначала в application:didFinishLaunchingWithOptions: или вы просто предполагаете, что application:didFinishLaunchingWithOptions: не был выполнен, потому что он не работает.

...