我使用了很多 NSUserDefaults 并且我希望每次应用程序开始删除它们时,除了两个对象之外,这是否可能?
任何帮助表示赞赏
我假设您知道要保留哪两个对象?如果是这种情况,请使用以下代码:
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"];
您需要自己跟踪密钥并在启动时删除与它们关联的对象。但更重要的是:为什么要将数据存储在 NSUserDefaults 中,而您只想通过应用程序的单次运行来持久化?这类数据可能应该保存在内存中。
您可以将这两项保存在单独的键下,并在 ViewDidLoad 期间添加到代码中。让我知道实际问题。