2013-04-23 2 views
2

Предположите шаблон приложения Xcode Cocoa по умолчанию, в котором делегат приложения находится в главном файле XIB.Порядок awakeFromNib, applicationWillFinishLaunching и applicationDidFinishLaunching?

Конечно, applicationWillFinishLaunching: вызывается до applicationDidFinishLaunching:.

Почему awakeFromNibдоapplicationWillFinishLaunching:?

Документов для applicationWillFinishLaunching: сказать:

Прислал центр уведомлений по умолчанию непосредственно перед объектом приложения инициализируются.

Почему это не противоречит awakeFromNib называют передapplicationWillFinishLaunching:?

Могу ли я полагаться на этот заказ?

+0

@Jeff да, поэтому я смущен. – 7cows

+0

, для которого класс является awakeFromNib, на который вы смотрите. –

+0

@KenAspeslagh Класс делегата приложения, созданный в основном XIB-файле (AppDelegate.h и AppDelegate.m в проекте Cocoa, созданного по шаблону Xcode по умолчанию). – 7cows

ответ

0

Согласно this answer, вызывается awakeFromNib, когда контроллер извлекается из архива нибы. Я предполагаю, что это происходит после того, как приложение завершило запуск.

4

Приказ awakeFromNib, applicationWillFinishLaunching и applicationDidFinishLaunching, что имеет смысл, учитывая, что вам сначала нужно загрузить пользовательский интерфейс, прежде чем вы сможете фактически запустить приложение. Уведомление не является applicationDidStartLaunching, которое можно увидеть как нечто, что нужно перед awakeFromNib.

1

1.awakeFromNib
2.applicationWillFinishLaunching
3.applicationDidFinishLaunching

  • awakeFromNi b будет называться первым.
  • Когда файл nib был инициализирован, каждый объект, на который ссылаются в nib, будет зациклирован, и все они получат вызов awakeFromNib, если они отвечают на сообщение.
  • После того, как это будет сделано, делегат приложения получит приложениеDidFinishLaunching: call. Это уведомление о том, что все загружено и что приложение готово начать получать ввод пользователя.
Смежные вопросы