如何删除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")