我有一个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;
那么,是否会导致用户默认以某种方式重置/损坏?
更一般地说,它是否与报告的应用程序崩溃有关,即使崩溃不是直接写入/读取用户默认值的结果?
答案 0 :(得分:0)
根据我的理解,只有在删除应用时才会删除它。由于您的NSUserDefaults重置问题在应用程序崩溃之前,我将首先弄清楚崩溃问题。
答案 1 :(得分:-2)
如果您在设备中安装了应用程序,NSUserDefault将再次重新初始化...当您在设备中测试应用程序时,您将使用Xcode连接您的设备,如果您运行该程序,则值将被重置...