2

我注意到我的 NSApplication 委托回调中有一些奇怪的地方。当我启动带有调试器的应用程序时,我看到了我所期望的:applicationDidFinishLaunching:首先调用,然后applicationDidBecomeActive:

当我在没有调试器的情况下运行应用程序时,我会以相反的顺序获得调用:applicationDidBecomeActive:之前调用applicationDidFinishLaunching:

是否有一个原因?考虑基于调试器与非调试器的不同场景非常令人困惑。

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

4

1 回答 1

5

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

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

于 2014-10-18T08:32:48.923 回答