可能重复:
How can I reset the NSUserDefaults data in the iPhone simulator?
在我的项目中,我使用不同的密钥在NSUserdefaults中保存了一些值。当我点击那个按钮存储在用户默认值中的值应该删除时,我在我的应用程序中重置按钮。有没有办法删除那些没有键的值,并且是addSuitedNamed:和removeSuitedName可以在这种情况下使用。
答案 0 :(得分:6)
NSUserDefaults * myNSUserDefaults = [NSUserDefaults standardUserDefaults];
NSDictionary * dict = [myNSUserDefaults dictionaryRepresentation];
for (id key in dict) {
//heck the keys if u need
[myNSUserDefaults removeObjectForKey:key];
}
[myNSUserDefaults synchronize];
或
[NSUserDefaults resetStandardUserDefaults];
[NSUserDefaults standardUserDefaults];
答案 1 :(得分:1)
您可以使用resetStandardUserDefaults
重置NSUserDefault的值。
检查此代码:
[NSUserDefaults resetStandardUserDefaults];
[NSUserDefaults standardUserDefaults];
你也可以:
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
或者您可以使用:
NSUSerDefaults *default = [NSUserDefaults standardUserDefaults];
NSDictionary *dictionary = [default dictionaryRepresentation];
for (NSString *key in [dictionary allKeys])
{
[default removeObjectForKey:key];
}
[default synchronize];
答案 2 :(得分:1)
如果在按钮上单击调用选择器,则可以使用
实现相同功能- (IBAction)btnResetUserDefaultsPressed:(id)sender {
NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
NSDictionary* dictUserDefaults = [userDefaults dictionaryRepresentation];
for (id akey in dictUserDefaults) {
[userDefaults removeObjectForKey:akey];
}
[userDefaults synchronize];
}
对于问题的第二部分,您肯定会发现this有用。