我使用NSUserDefaults字典来存储高分等基本信息,这样当用户关闭时,应用程序数据不会丢失.无论如何我使用:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
Run Code Online (Sandbox Code Playgroud)
存储数据.如果我希望存储一个新的高分,那么我会这样做:
[prefs setInteger:1023 forKey:@"highScore"];
[prefs synchronize]; //this is needed in case the app is closed.
Run Code Online (Sandbox Code Playgroud)
后来如果我想获得高分我会做:
[prefs integerForKey:@"highScore"];
Run Code Online (Sandbox Code Playgroud)
反正问题是,我储存很多其他的事情,因为NSUserDefaults enable你存储booleans,integers,objects等我有什么方法来执行删除所有键,以便成为NSUserDefaults的像拳头时我启动应用程序?
我正在寻找类似的东西:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs deleteAllKeysAndObjectsInTheDictionary];
Run Code Online (Sandbox Code Playgroud)
或者可能有一种获取所有键的方法,我必须遍历每个对象,但我不知道如何删除它们.
编辑:
我试过了 :
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[NSUserDefaults resetStandardUserDefaults];
[prefs synchronize];
Run Code Online (Sandbox Code Playgroud)
我仍然能够获得高分....
如何nsuserdefault在swift中自动清除值?我已经尝试了这个,但它对我不起作用......
[[NSUserDefaults standardUserDefaults] setPersistentDomain:[NSDictionary dictionary] forName:[[NSBundle mainBundle] bundleIdentifier]];
Run Code Online (Sandbox Code Playgroud) 也许这和这个问题是同一个问题。但我尝试过的解决方案很少有不起作用的。
模拟器不会在 Xcode 版本 9.0 beta 6 (9M214v) 上保存用户默认值。我也有 Xcode 8(连同 9),但将其删除。
我正在使用的代码:
UserDefaults.standard.setValue("1234567", forKey: "phone")
if let phone = UserDefaults.standard.value(forKey: "phone") as? String{
//some code here
}
Run Code Online (Sandbox Code Playgroud)
另外我也尝试过:
UserDefaults.standard.set("1234567", forKey: "phone")
if let phone = UserDefaults.standard.object(forKey: "phone") as? String{
//some code here
}
Run Code Online (Sandbox Code Playgroud)