清除NSUserDefaults
我正在使用+[NSUserDefaults standardUserDefaults]
来存储应用程序设置。 这由大约十几个字符串值组成。 是否可以永久删除这些值而不是将其设置为默认值?
您可以像这样删除应用程序的永久域:
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
在Swift 3和更高版本中:
if let bundleID = Bundle.main.bundleIdentifier {
UserDefaults.standard.removePersistentDomain(forName: bundleID)
}
这与@samvermette的答案类似,但是IMO有点清洁。
此代码将默认值重置为注册域:
[[NSUserDefaults standardUserDefaults] setPersistentDomain:[NSDictionary dictionary] forName:[[NSBundle mainBundle] bundleIdentifier]];
换句话说,它为您在该应用程序中注册的每个单一密钥removeObjectForKey
。
在此Apple开发者论坛主题上向Ken Thomases致谢。
你尝试使用 - removeObjectForKey
?
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"defunctPreference"];
链接地址: http://www.djcxy.com/p/85159.html
下一篇: Are predicates the most efficient way to lookup an object in NSSet?