gpt4 book ai didi

ios - iphone 应用程序终止时删除文档文件夹中的文件

转载 作者:行者123 更新时间:2023-11-28 22:42:48 31 4
gpt4 key购买 nike

我的 iPhone 应用程序会在运行应用程序时将多个内容下载到文档文件夹。我想在应用程序即将终止时删除下载的文件。我的应用程序在目标 4.3 或更高版本上运行并启用了 ARC。从文档文件夹中删除内容的最佳位置是什么?

- (void)applicationWillTerminate:(UIApplication *)application

应用程序终止时未被调用。

最佳答案

寻找– applicationDidEnterBackground:而不是 applicationWillTerminate

In iOS 4.0 and later, this method is called instead of the applicationWillTerminate: method when the user quits an application that supports background execution.

applicationWillTerminate 表示在 iOS4 之前的世界中“退出”应用的含义。

在现代(即 iOS4+)应用程序中,当用户退出应用程序时,应用程序会进入后台并暂停(以便用户可以快速重新进入)。所以,应用程序实际上并没有终止,如果它需要恢复内存,iOS 仍然可以随时终止它。这种情况经常发生,这意味着如果您暂停您的应用程序并在第二天返回它,您会发现该应用程序已终止。坏处是挂起的应用程序在终止时不会收到applicationWillTerminate消息,因此applicationDidEnterBackground:是最后的“保证”机会当用户退出应用程序时,您必须自行清理。

无论如何,如果您在应用程序 plist 文件中设置 UIApplicationExitsOnSuspend,您仍然可以在用户退出您的应用程序(并且您的应用程序相应地终止)时调用 applicationWillTerminate

为了完整起见,我还将添加 applicationWillTerminate:

may be called in situations where the application is running in the background (not suspended) and the system needs to terminate it for some reason.

但这是一个实际在后台运行的应用程序的特定用例(对于一定数量的应用程序类型来说就是这种情况)。

总而言之,清理文档的正确位置是:

  1. applicationDidEnterBackground 如果您运行的是 iOS4+ 且未在您的应用 plist 文件中设置 UIApplicationExitsOnSuspend

  2. applicationWillTerminate 如果您在 iOS3 上运行并且在您的应用 plist 文件中设置 UIApplicationExitsOnSuspend

关于ios - iphone 应用程序终止时删除文档文件夹中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14019659/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com