我在NSApplication委托回调中注意到一些奇怪的东西。当我启动附加了调试器的应用程序时,我看到了我的期望:首先调用applicationDidFinishLaunching:
,然后调用applicationDidBecomeActive:
当我在没有调试器的情况下运行应用程序时,我按顺序调用了调用:applicationDidBecomeActive:
之前调用了applicationDidFinishLaunching:
这有什么理由吗?基于调试器与非调试器考虑不同的场景会让人非常困惑。
[注意:测试这是在小牛队]
答案 0 :(得分:4)
没有记录发布期间这些委托方法的相对顺序,因此您不应该依赖任何特定的顺序。
如果您担心在调用-applicationDidBecomeActive:
时尚未完成某些初始化,那么您应该在-applicationWillFinishLaunching:
而不是-applicationDidFinishLaunching:
中进行初始化。或者,您应该按需进行初始化,例如在首次请求值时初始化属性。