1

我使用了很多 NSUserDefaults 并且我希望每次应用程序开始删除它们时,除了两个对象之外,这是否可能?

任何帮助表示赞赏

4

3 回答 3

2

我假设您知道要保留哪两个对象?如果是这种情况,请使用以下代码:

id obj1 = [[NSUserDefaults standardUserDefaults] objectForKey@"keyForObj1"];
id obj2 = [[NSUserDefaults standardUserDefaults] objectForKey@"keyForObj2"];

NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];

[[NSUserDefaults standardUserDefaults] setObject:obj1 forKey:@"keyForObj1"];
[[NSUserDefaults standardUserDefaults] setObject:obj2 forKey:@"keyForObj2"];
于 2013-06-05T01:03:38.727 回答
1

您需要自己跟踪密钥并在启动时删除与它们关联的对象。但更重要的是:为什么要将数据存储在 NSUserDefaults 中,而您只想通过应用程序的单次运行来持久化?这类数据可能应该保存在内存中。

于 2013-06-05T00:13:28.073 回答
1

您可以将这两项保存在单独的键下,并在 ViewDidLoad 期间添加到代码中。让我知道实际问题。

于 2013-06-05T00:17:51.947 回答