如何删除NSUserDefaults中的用户默认值?
即,我的应用程序在开始时设置了一些标准的默认值。 那么这些值可能会被用户覆盖。 而当用户弄乱了事情,我想设置回我的应用程序的默认值。 据我了解,应用程序的默认值是一个不同于用户默认的字典,用户默认只是覆盖这些应用程序的默认值。 但我还没有看到删除用户默认的方法。 任何想法?
尝试removeObjectForKey
– 这应该让你能够删除首选项。
使用这个代码
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"MyKey"];
如果你想立即保存,不要忘记同步
[[NSUserDefaults standardUserDefaults] synchronize];
NSUserDefaults类参考
同步 – 此方法是定期自动调用的,只有当您不能等待自动同步(例如,如果您的应用程序即将退出)或者如果您想要将用户默认更新为磁盘上的内容尽pipe你没有做任何改变。
Swift版本,方便复制粘贴:
var idForUserDefaults = "somestupidtext" var userDefaults = NSUserDefaults.standardUserDefaults() userDefaults.removeObjectForKey(idForUserDefaults) userDefaults.synchronize()
要么
NSUserDefaults.standardUserDefaults().removeObjectForKey("somestupidtext") NSUserDefaults.standardUserDefaults().synchronize()
NSUserDefaults * removeUD = [NSUserDefaults standardUserDefaults]; [removeUD removeObjectForKey:@"shoping"]; [[NSUserDefaults standardUserDefaults]synchronize ];
删除特定的KEY值:
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"KEY"]; [[NSUserDefaults standardUserDefaults] synchronize];
如果您需要重置UserDefaults / Clear All数据:
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier]; [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
Swift 3:
if let bundle = Bundle.main.bundleIdentifier { UserDefaults.standard.removePersistentDomain(forName: bundle) }
更新了Swift 3.0代码:
UserDefaults.standard.remove(forKey: "YOURKEY")