awakeFromNib,applicationWillFinishLaunching和applicationDidFinishLaunching的顺序?

时间:2013-04-23 12:43:48

标签: objective-c cocoa

假设一个默认的Xcode Cocoa应用程序模板,其中App Delegate位于主XIB文件中。

当然,applicationWillFinishLaunching:之前会调用applicationDidFinishLaunching:

为什么awakeFromNibapplicationWillFinishLaunching:之前被称为

applicationWillFinishLaunching:的文档说明了这一点:

  

在初始化应用程序对象之前由默认通知中心发送。

为什么这不会与awakeFromNib applicationWillFinishLaunching:之前被称为相矛盾?

我可以依赖这个订单吗?

3 个答案:

答案 0 :(得分:4)

顺序是awakeFromNib,applicationWillFinishLaunching和applicationDidFinishLaunching,这是有道理的,因为您首先需要在实际运行应用程序之前加载UI。通知不是applicationDidStartLaunching,它可以看作是在awakeFromNib之前必须要去的东西。

答案 1 :(得分:1)

  

1。 awakeFromNib
   2。 applicationWillFinishLaunching
       3。 applicationDidFinishLaunching

  • 首先调用awakeFromNib。
  • 初始化nib文件后,nib中引用的每个对象都将循环播放,如果它们响应消息,它们都将收到awakeFromNib调用。
  • 完成所有操作后,应用程序的委托将收到applicationDidFinishLaunching:call。这是通知,所有内容都已加载,应用程序已准备好开始接收用户输入。

答案 2 :(得分:0)

根据this answer,从nib存档中提取控制器时会调用awakeFromNib。我想这是在应用程序完成启动后发生的。