使用application:willFinishLaunchingWithOptions而不是application:didFinishLaunchingWithOptions:

时间:2014-11-24 01:26:01

标签: ios objective-c

我在默认模板中看到Apple使用application:didFinishLaunchingWithOptions:在appDelegate类中设置窗口。我的问题是为什么不要使用application:willFinishLaunchingWithOptions。是否有些事情只能在application:didFinishLaunchingWithOptions中完成。

我可以使用application:willFinishLaunchingWithOptions初始化rootViewController。

我仍然是IOS的新手,我可以理解这可能是一个愚蠢的问题,但任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:5)

<强> 应用:willFinishLaunchingWithOptions

告诉代表启动过程已经开始但尚未进行状态恢复。

Vs的

<强> 应用中:didFinishLaunchingWithOptions

告诉代表,启动过程已基本完成,应用程序几乎可以运行了。

因此差异清晰可见。 有关详细信息,请参阅UIApplicationDelegate

所以应用程序:willFinishLaunchingWithOptions 只是应用程序的前一个事件:didFinishLaunchingWithOptions

因此,在事件应用程序:willFinishLaunchingWithOptions 之后,将触发下一个事件应用程序:didFinishLaunchingWithOptions

所以它肯定取决于你的需求,但通常两者几乎相似,大多数时候你可能不需要同时使用这两者。

因此,在通常情况下,您可以使用 application:didFinishLaunchingWithOptions 作为类似类别中的最新事件。

答案 1 :(得分:0)

由@itsazzad有益地研究的文档告诉我们,这两个事件之间的时间用于“ 恢复应用程序状态”。

因此,在较早的事件中初始化视图控制器似乎没有意义-因为状态尚未恢复-并且您不知道要呈现哪个UI。

您可能会在被杀后重新发射,并且需要立即跳到工作中的UI场景。

所以我的答案是:仅在ImageData上初始化UI视图控制器