0

我有一个正在保存数据的应用程序,但是当应用程序在后台被终止时,我必须删除所有保存的数据。

我尝试使用这种方法:

- (void)applicationWillTerminate:(UIApplication *)application

但它不起作用。有人可以建议我怎么做吗?

4

3 回答 3

5

不知道为什么你需要专门擦除终止时的数据,但这里有一些需要考虑的事情:

当应用程序在被迫退出时写入可能不完整的数据时,处理这种情况的另一种方法是,当已知数据良好时,它们会写出一个标志。

这样,如果应用程序正常退出,将写入数据并写入标志。

如果应用程序被强制退出,强制退出的性质不会写入标志。

然后,当应用程序启动时,它可以查找标志。如果标志不存在,则应用程序知道任何数据不完整,可以丢弃(删除)并重新开始。

希望这可以帮助。

于 2014-03-18T11:13:26.560 回答
3

applicationWillTerminate:基本上永远不会被调用,你不应该再依赖它。

该应用程序在被杀死时没有得到任何回调,因此您无能为力。您需要根据实际用户需求决定采用不同的方法。这可能涉及加密/不在磁盘上保存某些数据(仅在内存中)/等等......

于 2014-03-18T11:02:43.447 回答
0

我知道,我迟到了,但是,如果您可以忍受数据“一直存在”直到下一次应用程序启动,您可以删除/清除application(_:didFinishLaunchingWithOptions).

于 2018-07-10T08:02:42.267 回答