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找不到框架的捆绑包。任何帮助都将不胜感激!