AppDelegate 中的应用程序 didFinishLaunching 是不是总是在更新后打开应用程序后被调用?

Posted

技术标签:

【中文标题】AppDelegate 中的应用程序 didFinishLaunching 是不是总是在更新后打开应用程序后被调用?【英文标题】:Does application didFinishLaunching in AppDelegate always get called after opening an app post-update?AppDelegate 中的应用程序 didFinishLaunching 是否总是在更新后打开应用程序后被调用? 【发布时间】:2017-10-10 22:17:47 【问题描述】:

假设您的设备上有一个最近刚刚关闭(但没有终止)的应用。 5 分钟后,应用程序更新通过 App Store,应用程序从 1.0 升级到 2.0。

更新后打开应用时,AppDelegate 中的 didFinishLaunching 是否总是被调用?应用程序是否因更新而终止?我假设是这样,因为可能会有一些巨大的代码更改,但我想确认一下。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

【问题讨论】:

【参考方案1】:

是的,didFinishLaunchingWithOptions 在更新后总是会被调用,因为应用程序在您打开时基本上会重新启动,然后在新的代码更改后(不管它们的当前状态如何)。

您可以在模拟器中轻松测试此行为 - 只需重新运行应用程序而不关闭它并在 didFinishLaunchingWithOptions 中设置断点。

【讨论】:

以上是关于AppDelegate 中的应用程序 didFinishLaunching 是不是总是在更新后打开应用程序后被调用?的主要内容,如果未能解决你的问题,请参考以下文章

AppDelegate 中的应用 SIGABRT

如何解决 AppDelegate 中的 coreData 错误?

AppDelegate 中的异常断点

AppDelegate.m 类中的@interface 错误

在 AppDelegate 中使用 ViewController 中的数组

appdelegate.m 中的 UIAlertView 不起作用