当前位置: 首页 > 面试题库 >

从NSUserDefaults字典iOS中删除所有密钥

谷梁宜
2023-03-14
问题内容

我使用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你到店里booleansintegersobjects等我有什么方法来执行删除所有键,以便成为NSUserDefaults的像拳头时我启动应用程序?

我正在寻找类似的东西:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs deleteAllKeysAndObjectsInTheDictionary];

或者也许有一种获取所有键的方法,我必须遍历每个对象,但是我不知道如何删除它们。

编辑:

我努力了 :

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[NSUserDefaults resetStandardUserDefaults];
[prefs synchronize];

而且我仍然能够获得高分。


问题答案:

如果您查看NSUserDefaults文档,将会看到一个方法- (NSDictionary *) dictionaryRepresentation。在标准用户默认值上使用此方法,可以获取用户默认值中所有键的列表。然后,您可以使用它清除用户默认设置:

- (void)resetDefaults {
    NSUserDefaults * defs = [NSUserDefaults standardUserDefaults];
    NSDictionary * dict = [defs dictionaryRepresentation];
    for (id key in dict) {
        [defs removeObjectForKey:key];
    }
    [defs synchronize];
}


 类似资料:
  • 问题内容: 如果我有词典列表,请说: 并且我想删除具有2(或name )的字典,以编程方式解决此问题的最有效方法是什么(也就是说,我不知道列表中条目的索引,因此它可以)只是被弹出)。 问题答案: 编辑 :由于对此代码的性能提出了一些疑问(一些基于对Python的性能特征的误解,一些基于超出给定规范的假设,即列表中仅存在一个dict,其key的值为2) id”),我希望在此方面给您保证。 在旧的Li

  • 问题内容: 我想开发一个只能从字符串中删除数字字符的mysql函数。 问题答案: 您可以编写用户定义的函数,在其中可以编写替换逻辑,也可以尝试:

  • 问题内容: 从字典中删除键时,我使用: 有没有一种方法可以做到这一点? 问题答案: 要删除键而不管它是否在字典中,请使用以下两个参数的形式: 如果典中存在,则返回,None否则返回。如果第二个参数未指定(即)并且key不存在,则引发a。 要删除肯定存在的密钥,你还可以使用 如果关键字在字典中不存在,则会引发 。

  • 从字典中删除键时,我使用: 有没有一个简单的方法可以做到这一点?

  • 问题内容: 我面临网址问题,我希望能够转换标题,该标题可以包含任何内容,并去除所有特殊字符,因此它们仅包含字母和数字,当然我想用连字符替换空格。 怎么做?我听说过很多关于正则表达式(regex)的使用… 问题答案: 这应该可以满足您的需求: 用法: 将输出: 编辑: 嘿,只是一个简单的问题,如何防止多个连字符彼此相邻?并将它们替换为1?

  • 我有一个字典列表,里面有各种键和值。我正试着根据钥匙分组 我的输出: 我不想在值中显示“无” 期望输出: 我也尝试过使用过滤函数,但没有成功。有关于如何删除无的指导吗? 代码