Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用application:willFinishLaunchingWithOptions而不是application:didFinishLaunchingWithOptions:_Ios_Objective C - Fatal编程技术网

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

Ios 使用application:willFinishLaunchingWithOptions而不是application:didFinishLaunchingWithOptions:,ios,objective-c,Ios,Objective C,我看到苹果在默认模板中使用应用程序:didfishlaunchwithoptions:在appDelegate类中设置窗口。我的问题是为什么不使用application:willfinishlaunchwithoptions。是否只有在应用程序中才能执行某些操作:didfishlaunchingwithoptions 我可以使用application:willFinishLaunchingWithOptions初始化rootViewController吗 我对IOS还是新手,我能理解这可能是一个

我看到苹果在默认模板中使用
应用程序:didfishlaunchwithoptions
:在appDelegate类中设置窗口。我的问题是为什么不使用
application:willfinishlaunchwithoptions
。是否只有在
应用程序中才能执行某些操作:didfishlaunchingwithoptions

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

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

应用程序:将使用选项完成启动:

通知代理启动过程已开始,但尚未进行状态恢复

Vs

应用程序:使用选项完成启动

告诉学员启动过程即将完成,应用程序已准备好运行

因此,差别是显而易见的。 有关详细信息,请参见

所以application:willFinishLaunchingWithOptions只是application:didFinishLaunchingWithOptions的前一个事件

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

因此,这肯定取决于您的需要,但通常两者几乎相似,大多数情况下,您可能不需要同时使用这两种


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

由@itsazzad挖掘的文档告诉我们,这两个事件之间的时间用于“恢复应用程序状态”

因此,在早期事件中初始化视图控制器似乎毫无意义,因为状态尚未恢复,而且您不知道要显示哪个UI

您可能会在kill之后重新启动,并且需要立即跳到工作中的UI场景


所以我的答案是:只有在我理解的
didfishlaunchingwithoptions

上初始化UI视图控制器,但我可以使用“application:willFinishLaunchingWithOptions”来初始化stuff live UINavigationController。如果是,那么这是一种良好的做法。在这种情况下,您应该使用application:didFinishLaunchingWithOptions,就像您使用application:willFinishLaunchingWithOptions一样,然后应用程序尚未启动。UI作业应该在之后完成。那么像Parse或Google Analytics这样的框架初始化呢?@IulianOnofrei您可能会关注Google Analytics。但我不确定“解析”是否正确。需要注意的是,在CoreData迁移期间,application:willFinishLaunchingWithOptions具有旧版本,然后执行更新步骤,因此application:didFinishLaunchingWithOptions更新了CoreData版本。有趣的是,您两周前回答了这个问题。上周,我在网站上发布了一个非常相关的问题。在我的案例中,我需要在应用程序启动时启动一个具有自己故事板的框架。为了“可恢复”,我现在调用框架并在application:willFinishLaunchingWithOptions中分配根视图控制器,它工作得很好。问题是,在恢复情节提要/视图控制器期间,iOS找不到框架的捆绑包。任何帮助都将不胜感激!