我正在使用+[NSUserDefaults standardUserDefaults]来存储应用程序设置。它由大约12个字符串值组成。是否可以永久删除这些值,而不是仅将它们设置为默认值?
发布于 2011-07-26 10:55:23
您可以像这样删除应用程序的持久域:
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];在Swift 3和更高版本中:
if let bundleID = Bundle.main.bundleIdentifier {
UserDefaults.standard.removePersistentDomain(forName: bundleID)
}这与@samvermette的答案类似,但在IMO中更清晰一些。
发布于 2010-06-10 12:40:08
此代码将默认值重置为注册域:
[[NSUserDefaults standardUserDefaults] setPersistentDomain:[NSDictionary dictionary] forName:[[NSBundle mainBundle] bundleIdentifier]];换句话说,它会为你在该应用程序中注册的每个密钥执行removeObjectForKey。
在这个苹果开发者论坛thread.上致敬肯·汤玛斯
发布于 2009-02-13 07:51:57
您是否尝试过使用-removeObjectForKey
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"defunctPreference"];https://stackoverflow.com/questions/545091
复制相似问题