【发布时间】:2015-06-14 16:35:21
【问题描述】:
我在我的应用程序中使用 NSUserDefaults 很多时间来存储一些值,但是在“刷新按钮”上我想清除所有存储的值,有没有办法清除所有 NSUserDefaults 值?
【问题讨论】:
标签: ios objective-c nsuserdefaults
我在我的应用程序中使用 NSUserDefaults 很多时间来存储一些值,但是在“刷新按钮”上我想清除所有存储的值,有没有办法清除所有 NSUserDefaults 值?
【问题讨论】:
标签: ios objective-c nsuserdefaults
您可以使用以下代码删除所有存储的值,请参阅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]];
斯威夫特
let defaults = UserDefaults.standard
defaults.dictionaryRepresentation().keys.forEach { (key) in
defaults.removeObject(forKey: key)
}
【讨论】:
您可以使用以下语句清除用户默认值 -
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
您可以在刷新按钮上调用选择器并将上述语句保留在其中,因为-
- (void) refreshUserDefaults
{
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
}
【讨论】:
NSUserDefaults,按下应用程序中的重置按钮会如何发生 2?