首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清除NSUserDefaults

清除NSUserDefaults
EN

Stack Overflow用户
提问于 2009-02-13 07:49:08
回答 15查看 130.7K关注 0票数 292

我正在使用+[NSUserDefaults standardUserDefaults]来存储应用程序设置。它由大约12个字符串值组成。是否可以永久删除这些值,而不是仅将它们设置为默认值?

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2011-07-26 10:55:23

您可以像这样删除应用程序的持久域:

代码语言:javascript
复制
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];

在Swift 3和更高版本中:

代码语言:javascript
复制
if let bundleID = Bundle.main.bundleIdentifier {
    UserDefaults.standard.removePersistentDomain(forName: bundleID)
}

这与@samvermette的答案类似,但在IMO中更清晰一些。

票数 521
EN

Stack Overflow用户

发布于 2010-06-10 12:40:08

此代码将默认值重置为注册域:

代码语言:javascript
复制
[[NSUserDefaults standardUserDefaults] setPersistentDomain:[NSDictionary dictionary] forName:[[NSBundle mainBundle] bundleIdentifier]];

换句话说,它会为你在该应用程序中注册的每个密钥执行removeObjectForKey

在这个苹果开发者论坛thread.上致敬肯·汤玛斯

票数 102
EN

Stack Overflow用户

发布于 2009-02-13 07:51:57

您是否尝试过使用-removeObjectForKey

代码语言:javascript
复制
 [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"defunctPreference"];
票数 97
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/545091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档