【发布时间】:2011-10-11 10:39:57
【问题描述】:
我使用 NSUserDefaults 字典来存储基本信息,例如高分等,这样当用户关闭应用程序时数据就不会丢失。反正我用:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
存储数据。例如,如果我想存储一个新的高分,那么我会这样做:
[prefs setInteger:1023 forKey:@"highScore"];
[prefs synchronize]; //this is needed in case the app is closed.
以后如果我想找回高分,我会这样做:
[prefs integerForKey:@"highScore"];
无论如何,关键是我存储了很多其他东西,因为 NSUserDefaults enable 你要存储 booleans、integers、objects 等。我必须执行什么方法来删除所有键,以便 NSUserDefaults就像我第一次启动应用程序一样?
我正在寻找类似的东西:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs deleteAllKeysAndObjectsInTheDictionary];
或者也许有一种获取所有键的方法,我必须遍历每个对象,但我不知道如何删除它们。
编辑:
我试过了:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[NSUserDefaults resetStandardUserDefaults];
[prefs synchronize];
而且我仍然能够获得高分....
【问题讨论】:
-
查看这个相关的问题,Delete all my NSUserDefaults that start with a certain word,带有good answer about using a NSPredicate 以在 NSUserDefaults 中查找某些条目。
标签: ios objective-c swift cocoa-touch nsuserdefaults