NSApplication委托调用的顺序

时间:2014-10-18 08:20:23

标签: objective-c macos nsapplication nsapplication-delegate

我在NSApplication委托回调中注意到一些奇怪的东西。当我启动附加了调试器的应用程序时,我看到了我的期望:首先调用applicationDidFinishLaunching:,然后调用applicationDidBecomeActive:

当我在没有调试器的情况下运行应用程序时,我按顺序调用了调用:applicationDidBecomeActive:之前调用了applicationDidFinishLaunching:

这有什么理由吗?基于调试器与非调试器考虑不同的场景会让人非常困惑。

[注意:测试这是在小牛队]

1 个答案:

答案 0 :(得分:4)

没有记录发布期间这些委托方法的相对顺序,因此您不应该依赖任何特定的顺序。

如果您担心在调用-applicationDidBecomeActive:时尚未完成某些初始化,那么您应该在-applicationWillFinishLaunching:而不是-applicationDidFinishLaunching:中进行初始化。或者,您应该按需进行初始化,例如在首次请求值时初始化属性。