我使用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)
我仍然能够获得高分....
我有这个代码UserDefaults从应用程序中删除所有数据:
let domain = Bundle.main.bundleIdentifier!
UserDefaults.standard.removePersistentDomain(forName: domain)
print(Array(UserDefaults.standard.dictionaryRepresentation().keys).count)
Run Code Online (Sandbox Code Playgroud)
但是我10从印刷线上得到了.不应该0吗?