将可编码模型添加到领域快速

时间:2019-06-19 10:53:15

标签: swift realm codable

我正在尝试将 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)
    }

1 个答案:

答案 0 :(得分:0)

realm.add(placesData)

在向其发送object时接受一个Data参数

  

如果您是从json中获取数据的,则使用Decodable并不意味着您必须使用Encodable