【发布时间】:2019-06-19 10:53:15
【问题描述】:
我正在尝试将 Codable 模型添加到领域数据库。模型有效,值是从 API 调用传递的,但是我想在我的 Realm 数据库中创建一个 Array 所以当我点击保存按钮,模型被添加到数据库中。
我是如何在创建时遇到此错误的
无法转换“数据”类型的值?到预期的参数类型 '对象'
func create<T: Object>(_ objects: [T]) where T: Codable {
do {
let placesData = try? JSONEncoder().encode(objects)
try realm.write {
realm.add(placesData)
}
} catch {
}
}
保存在 UserDefaults 中是这样的
private func putModelArray<T>(_ value: [T]?, forKey key: String) where T: Codable {
guard let value = value else {
storage.removeObject(forKey: key)
return
}
let placesData = try? JSONEncoder().encode(value)
storage.setValue(placesData, forKey: key)
}
【问题讨论】:
-
将所有值从 Data 中提取到您的类对象中,然后将您的类对象放入领域。
-
@AsadAliChoudhry 你能显示代码示例吗
-
将领域对象编码为 JSON 并将其保存在数据库中的目标是什么?
-
您可以打印 placesData 变量并添加到您的问题中吗?
-
如果您已经有一个对象数组,为什么要在保存到领域之前对其进行 JSON 编码?只需
realm.add(objects)。