arrays - 将附加数组保存到 NSUserdefaults 不返回附加数组

标签 arrays swift nsuserdefaults

我想通过 NSUSerdefult 将数据保存到字典数组中。

每次用户运行应用程序时,我都想将详细信息附加到 NSUSerdefaults 中现有的字典数组中。

问题是数据没有附加到数组,因为 array.count 始终为 1,因此第一个结果总是被覆盖,并且没有附加到 NSUSerdefults 中的现有数组。

// Instance var
let defaults = NSUserDefaults.standardUserDefaults();

// Array to save to NSUserdef
deaultScoreResults  = [Dictionary<String, String>]();

// Save to NSUSer
deaultScoreResults.append(["CaseResult":caseNumberString+"/Study Up!"])

defaults.setObject(deaultScoreResults, forKey: "userScoreForCase");

// Retrieve in a diff vc
if let scoreValueArray : [Dictionary<String, String>]  = defaults.objectForKey("userScoreForCase") as? Array{


            for dict_Result in scoreValueArray{....

也许用户默认值不是将附加数据保存到现有数据的最合适方法,或者核心数据在这里更合适?

欢迎任何意见

最佳答案

我之前也遇到过类似的问题,不知道是有意还是无意。在将字典写入默认值之前,尝试将其转换为 NSDictionary。

defaults.setObject((deaultScoreResults as NSDictionary), forKey: "userScoreForCase");

为了进一步阐述我的观点,如果您查看用于设置 NSUserDefault 值的 Apple 文档,您将看到 value 必须是正确的列表对象:“值参数只能是属性列表对象:NSData、NSString、NSNumber、NSDate、NSArray 或 NSDictionary”(source)。因此执行强制转换可以解决这个问题。

关于arrays - 将附加数组保存到 NSUserdefaults 不返回附加数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29542123/

相关文章:

javascript - 在 Javascript 中向嵌套数组添加元素

javascript - 检查 Angular 数组中的值

python - 使用多处理/线程将 numpy 数组操作分解为 block

ios - 为什么按钮开关不起作用?

ios - NSUserDefaults 在手机重启但未解锁时丢失其键和值

c++ - 将记录数组的元素传递给临时记录数组的问题

Swift 向 UIScrollView 动态添加按钮,但为什么不能滚动?

swift - 来自泛型类型的初始化器不会在 swift 中被继承?

ios - 文本字段 setEnabled 与 NSUserDefaults

ios - 使用 NSUserDefaults 与 Today Extension(小部件)共享一组自定义对象