iOS8:将数组保存到用户默认值会使应用程序“暂停”

时间:2014-09-19 11:58:28

标签: arrays ios8 nsuserdefaults preferences

此错误是1小时,来自最近的iOS8更新。基本上,我们在NSUserDefault首选项中保存了一系列字典,之前它工作正常,现在还没有。

症状:应用程序读取该行并停止而不会崩溃或出现任何错误。没有任何消息。几分钟后什么也没有记录。

不知道为什么或如何,欢迎任何建议。

如果这有任何帮助,这就是崩溃的行:

 [[NSUserDefaults standardUserDefaults] setObject:credentialsList forKey:CONFIG_Credentials];

此数组包含每个用户一个字典及其所有凭据。

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决此问题的方法。

我已经读过NSUSerDefaults对很多人(here for example)的问题,但在我的情况下就是这样:

在NSUserDefaults中保存NSMutableArray

现在我注意到保存数组工作得很好,只有可变的数组导致了问题(原因未知,请参阅上面的评论)。所以我只是创建了一个数组并用可变的数组启动它,并保存了数组而不是可变数组。

像这样:

//My mutable array is called credentialsList
NSArray *temp = [[NSArray alloc]initWithArray:credentialsList];
[[NSUserDefaults standardUserDefaults] setObject:temp forKey:CONFIG_Credentials];