3

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

当然applicationWillFinishLaunching:是之前调用的applicationDidFinishLaunching:

为什么之前awakeFromNib被调用? applicationWillFinishLaunching:

文档是applicationWillFinishLaunching:这样说的:

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

为什么这与之前awakeFromNib被调用不矛盾? applicationWillFinishLaunching:

我可以依赖这个命令吗?

4

3 回答 3

4

顺序是 awakeFromNib、applicationWillFinishLaunching 和 applicationDidFinishLaunching,这是有道理的,因为您首先需要加载 UI,然后才能实际运行应用程序。该通知不是 applicationDidStartLaunching,人们可以将其视为必须在 awakeFromNib 之前执行的操作。

于 2013-04-24T15:37:27.673 回答
1

1. awakeFromNib
2. applicationWillFinishLaunching
3. applicationDidFinishLaunching

  • awakeFromNib 将首先被调用。
  • 当 nib 文件初始化后,nib 中引用的每个对象都将被循环遍历,如果它们响应消息,它们都会收到 awakeFromNib 调用。
  • 完成所有这些之后,应用程序的委托将收到 applicationDidFinishLaunching: 调用。这是所有内容都已加载并且应用程序已准备好开始接收用户输入的通知。
于 2016-01-20T09:20:30.307 回答
0

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

于 2013-04-23T12:46:39.347 回答