清除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

上一篇: Clearing NSUserDefaults

下一篇: Are predicates the most efficient way to lookup an object in NSSet?