对成员'create(_:value:update :)'的引用不明确

时间:2019-10-29 15:51:47

标签: ios swift realm

我在项目中使用RealmSwift。 尝试更新现有对象的参数之一时,出现以下错误:

  

对成员'create(_:value:update :)'的不明确引用

这是我正在处理的代码:

        let newProduct = ShoppingBagObject(value: [product.id, product.name!, product.price!, product.oldPrice!, product.weight!, count])
        try? realm?.write {
            realm?.create(newProduct, value: ["count": 3], update: .modified)
        }

我只想更新'count'参数。

这是realm.io官方文档的参考:

try! realm.write {
    realm.create(Book.self, value: ["id": 1, "price": 9000.0], update: .modified)
    // the book's `title` property will remain unchanged.
}

编辑: 这是我的模型课:

class ShoppingBagObject: Object {
    @objc dynamic var id = 0
    @objc dynamic var name = ""
    @objc dynamic var price = 0
    @objc dynamic var oldPrice = 0
    @objc dynamic var weight = 0
    @objc dynamic var count = 1

    override static func primaryKey() -> String? {
        return "id"
    }
}

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

您可以尝试

try? realm?.write {
    realm?.create(ShoppingBagObject.self, value: ["id":product.id, "count":3], update: .modified)
}

从文档中:

  

如果主键值为“ 1”的Book对象已经存在于   数据库,那么该对象将被简单地更新。如果没有   存在,那么将创建一个全新的Book对象并将其添加到   数据库。

     

您还可以通过传递以下内容来使用主键部分更新对象   只是您希望更新的值的一部分,   键