Iphone 如何在NSUserDefaults中删除用户默认值?
例如,我的应用程序在开始时设置了一些标准默认值。然后这些值可能会被用户覆盖。当用户把事情搞砸时,我想将这些设置设置回我的应用程序默认值。据我所知,应用程序默认值与用户默认值是不同的字典,用户默认值只是覆盖那些应用程序默认值。但我还没有看到删除用户默认值的方法。有什么想法吗?试试——这样你就可以删除偏好了。使用下面的代码Iphone 如何在NSUserDefaults中删除用户默认值?,iphone,cocoa-touch,uikit,Iphone,Cocoa Touch,Uikit,例如,我的应用程序在开始时设置了一些标准默认值。然后这些值可能会被用户覆盖。当用户把事情搞砸时,我想将这些设置设置回我的应用程序默认值。据我所知,应用程序默认值与用户默认值是不同的字典,用户默认值只是覆盖那些应用程序默认值。但我还没有看到删除用户默认值的方法。有什么想法吗?试试——这样你就可以删除偏好了。使用下面的代码 [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"MyKey"]; 如果要立即保存,请
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"MyKey"];
如果要立即保存,请不要忘记同步
[[NSUserDefaults standardUserDefaults] synchronize];
UserDefaults.standard.removeObject(forKey: "aKey")
UserDefaults.standard.synchronize()
同步-此方法会定期自动调用,仅当您无法等待自动同步(例如,如果您的应用程序即将退出)或即使未做任何更改也要将用户默认值更新为磁盘上的值时,才使用此方法
Swift 5:
UserDefaults.standard.removeObject(forKey: "MyKey")
UserDefaults.standard.synchronize()
if let bundle = Bundle.main.bundleIdentifier {
UserDefaults.standard.removePersistentDomain(forName: bundle)
}
Swift版本便于复制粘贴:
var idForUserDefaults = "somestupidtext"
var userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.removeObjectForKey(idForUserDefaults)
userDefaults.synchronize()
或
更新Swift 3.0代码:
UserDefaults.standard.removeObject(forKey:“YOURKEY”)
要删除特定的键值:
Swift 3+
UserDefaults.standard.removeObject(forKey: "KEY")
Obj-C
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"KEY"];
[[NSUserDefaults standardUserDefaults] synchronize];
如果需要重置用户默认值/清除所有数据: Swift 3:
UserDefaults.standard.removeObject(forKey: "MyKey")
UserDefaults.standard.synchronize()
if let bundle = Bundle.main.bundleIdentifier {
UserDefaults.standard.removePersistentDomain(forName: bundle)
}
斯威夫特4
UserDefaults.standard.removeObject(forKey: "your_key")
UserDefaults.standard.synchronize()
快捷方式
[[NSUserDefaults standardUserDefaults] synchronize];
UserDefaults.standard.removeObject(forKey: "aKey")
UserDefaults.standard.synchronize()
+1表示[[NSUserDefaults standardUserDefaults]同步];我通常会忘记添加此项。如果您不同步,它将在您关闭应用程序时自动同步。@yucelbayram->yup,但如果您要立即保存,则必须进行同步。@Rajneesh071是的。苹果文档当前说明了同步方法:“等待对默认数据库的任何挂起的异步更新并返回;这个方法是不必要的,不应该使用。“你不需要再使用它了。
类型为“UserDefaults”的值没有成员“remove”
kbunarjo,你有没有尝试过这个方法。LOL.Swift 3-UserDefaults.standard.removeObject(forKey:“Key”)@Jeff他们最近发布了一个更新版本的Swift 3(3.1)。我还没有看文档,所以我想这就是我的版本不再工作的原因。是的,我觉得很有趣:)UserDefaults.standard.removeObject(forKey:“YOURKEY”);苹果文档声明,.synchronize()
“是不必要的,不应该使用。