将值附加到数据数组并保存在 Userdefault swift
Posted
技术标签:
【中文标题】将值附加到数据数组并保存在 Userdefault swift【英文标题】:appending value to a data array and saving in Userdefault swift 【发布时间】:2019-09-26 12:16:03 【问题描述】:我正在尝试向数组添加一个值并存储在 userdefaults 中,但在尝试将新值附加到提取的值时出现错误。下面是我的代码。
private func putArray(_ value: GMSAutocompletePrediction?, forKey key: String)
guard let value = value else
return
let newArray = getArray(forKey: key)?.append(value) // error here
storage.setValue(NSKeyedArchiver.archivedData(withRootObject: value), forKey: key)
private func getArray(forKey key: String) -> [GMSAutocompletePrediction]?
guard let data = storage.data(forKey: key) else return nil
return NSKeyedUnarchiver.unarchiveObject(with: data) as? [GMSAutocompletePrediction]
下面是我的错误
不能对不可变值使用变异成员:函数调用返回不可变值
【问题讨论】:
创建数组为let newArray = (getArray(forKey: key) ?? []) + [value]
【参考方案1】:
问题是getArray(forKey: key)?
是不可变的,你不能直接附加append
,所以你需要
var newArray = getArray(forKey: key) ?? []
newArray.append(value)
【讨论】:
感谢它现在可以工作但发生崩溃***.com/questions/58117112/…以上是关于将值附加到数据数组并保存在 Userdefault swift的主要内容,如果未能解决你的问题,请参考以下文章