我在项目中使用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"
}
}
我在做什么错了?
答案 0 :(得分:1)
您可以尝试
try? realm?.write {
realm?.create(ShoppingBagObject.self, value: ["id":product.id, "count":3], update: .modified)
}
从文档中:
如果主键值为“ 1”的Book对象已经存在于 数据库,那么该对象将被简单地更新。如果没有 存在,那么将创建一个全新的Book对象并将其添加到 数据库。
您还可以通过传递以下内容来使用主键部分更新对象 只是您希望更新的值的一部分, 键