我在NSApplication委托回调中注意到了一些奇怪的东西。当我使用附带调试器启动应用程序时,我看到了我所期望的:首先调用applicationDidFinishLaunching:,然后调用applicationDidBecomeActive:
当我在没有调试器的情况下运行这个应用程序时,我的调用顺序颠倒了:applicationDidBecomeActive:在applicationDidFinishLaunching:之前被调用
这有什么原因吗?这使得基于调试器和非调试器的不同场景的解释变得非常混乱。
注意:这是在小牛身上测试的。
发布于 2014-10-18 08:32:48
在启动过程中,这些委托方法的相对顺序没有文档化,因此您不应该依赖任何特定的顺序。
如果您担心在调用-applicationDidBecomeActive:时没有完成某些初始化,那么应该在-applicationWillFinishLaunching:而不是-applicationDidFinishLaunching:中进行初始化。或者,您应该根据需要进行初始化,例如在第一次请求属性值时初始化它。
https://stackoverflow.com/questions/26437713
复制相似问题