NSUserDefaults被重置

时间:2013-11-18 08:42:34

标签: ios nsuserdefaults

我有一个ios应用程序,最近一直在收到用户关于其设置重置的报告。 使用NSUserDefaults保存设置。

我的问题是,用户默认是否因某种原因而被破坏/重置?

关于我如何使用它的一些注意事项:

  • 当我启动应用程序时,只有在使用registerDefaults不存在密钥时才存储默认值(这样做是为了处理“首次安装”方案)。

  • 上述大多数报告都描述了应用程序崩溃,然后重新打开时,设置会重置为默认值。

  • 我对NSUserDefaults的使用非常简单 - 保存numbers/strings,有时阅读它们等等。没有什么太花哨的。我不删除钥匙。

一些代码示例:

例如,我使用以下方法将数据保存在不同的地方:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"FirstLevel" forKey:@"Level"];
[defaults setInteger:100 forKey:@"Score"];
[defaults synchronize];

我看过:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
int intValue = [defaults integerForKey:@"Score"];
return intValue;

那么,是否会导致用户默认以某种方式重置/损坏?

更一般地说,它是否与报告的应用程序崩溃有关,即使崩溃不是直接写入/读取用户默认值的结果?

2 个答案:

答案 0 :(得分:0)

根据我的理解,只有在删除应用时才会删除它。由于您的NSUserDefaults重置问题在应用程序崩溃之前,我将首先弄清楚崩溃问题。

答案 1 :(得分:-2)

如果您在设备中安装了应用程序,NSUserDefault将再次重新初始化...当您在设备中测试应用程序时,您将使用Xcode连接您的设备,如果您运行该程序,则值将被重置...