代码之家  ›  专栏  ›  技术社区  ›  Steph Thirion

如何将保存的数据重置回默认值?

  •  6
  • Steph Thirion  · 技术社区  · 17 年前

    我正在使用NSUserDefaults在我的应用程序上实现保存的数据,如下所示:

    [[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:0],@"mySetting",nil]];
    // check
    int firstLaunch = [[NSUserDefaults standardUserDefaults] integerForKey:@"mySetting"];
    // set
    [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"mySetting"];
    

    现在出于开发目的,我希望能够删除保存的数据并返回默认值,而无需每次删除应用程序并重新安装。有没有快速的方法?我以为重置标准用户默认值可以完成这项工作,但事实并非如此。

    4 回复  |  直到 10 年前
        1
  •  13
  •   user23743 user23743    17 年前

    对于要恢复为默认值的密钥, -removeObjectForKey: 将从应用程序首选项中删除其定义。在所有条件相同的情况下,这意味着 -<type>ForKey: 将返回已注册的默认值。

        2
  •  10
  •   bugeye    15 年前

    下面的代码片段对我很有用。

    NSDictionary *defaultsDict = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation];
    for (NSString *key in [defaultsDict allKeys])
        [[NSUserDefaults standardUserDefaults] removeObjectForKey:key];
    
    [[NSUserDefaults standardUserDefaults] synchronize];
    
        3
  •  2
  •   Abizern    17 年前

    调用reset后是否尝试重新加载默认值?正如佩兹所说:

    例如

    [NSUserDefaults resetStandardUserDefaults];
    [NSUserDefaults standardUserDefaults];
    

    这将清除标准集中的所有默认值和载荷。

    编辑: 纠正了我对类方法的误用。

        4
  •  0
  •   PEZ    17 年前

    文档中有关于resetStandardUserDefaults的说明:

    与的共享用户默认值对象