我在我的应用中使用 NSUserDefaults 很多时间来存储一些值,但是在“刷新按钮”我要清除所有存储的值,有没有办法清除所有NSUserDefaults值?< / p>
答案 0 :(得分:9)
您可以使用以下代码删除所有存储的值,请参阅here了解详情
- (void)removeUserDefaults
{
NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults];
NSDictionary * dict = [userDefaults dictionaryRepresentation];
for (id key in dict) {
[userDefaults removeObjectForKey:key];
}
[userDefaults synchronize];
}
或以最短的方式
[[NSUserDefaults standardUserDefaults] setPersistentDomain:[NSDictionary dictionary] forName:[[NSBundle mainBundle] bundleIdentifier]];
Swift
let defaults = UserDefaults.standard
defaults.dictionaryRepresentation().keys.forEach { (key) in
defaults.removeObject(forKey: key)
}
答案 1 :(得分:5)
您可以使用以下语句清除用户默认值 -
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
您可以在刷新按钮上调用选择器并将上述语句保留在其中,如 -
- (void) refreshUserDefaults
{
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
}