【发布时间】:2011-04-08 06:09:33
【问题描述】:
每当应用程序关闭或在后台运行一段时间(例如 5 分钟)时,我想消除保存到 NSUserDefaults 的所有字段中的所有变量。
我尝试向 applicationDidFinishLaunching 的应用程序委托添加一行,如下所示:
if (UIApplicationStateBackground == TRUE) {
NSUserDefaults *profiles = [NSUserDefaults standardUserDefaults];
[profiles setObject:nil forKey:@"name1"];
[profiles synchronize];
}
我也只将这部分添加到 applicationWillTerminate:
NSUserDefaults *profiles = [NSUserDefaults standardUserDefaults];
[profiles setObject:nil forKey:@"name1"];
[profiles synchronize];
这些似乎都不起作用,我不知道如何设置条件“如果超过 5 分钟的应用程序处于后台,请删除 NSUserDefaults 变量” - 有什么帮助吗?
【问题讨论】:
-
applicationDidFinishLaunching 在启动时被调用,它永远不会在后台启动 AFAIK。
-
正确。然而,苹果在其关于 applicationDidFinishLaunchingWithOptions 的文档中说:“注意:强烈建议您使用此方法来初始化您的应用程序,而不是 applicationDidFinishLaunching: 方法。”
标签: ios application-state