如何删除除两个对象之外的所有NSUserDefaults?

时间:2013-06-05 00:09:52

标签: objective-c nsuserdefaults

我正在使用很多NSUserDefaults,我希望每次应用程序开始删除它们,除了两个对象是否有可能?

任何帮助表示赞赏

3 个答案:

答案 0 :(得分: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"];

答案 1 :(得分:1)

您需要自己跟踪密钥并在启动时删除与其关联的对象。更重要的是,您为什么要在NSUserDefaults中存储数据,而您只希望通过单次运行应用程序来保存数据?那种数据应该保存在内存中。

答案 2 :(得分:1)

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