文件陈述了明显的例如:
add(_:update:) Adds or updates an object to be persisted it in this Realm.
create(_:value:update:) Creates or updates an instance of this object and adds it to the Realm populating the object with the given value.
但是我不能完全看出其中的差异吗?
答案 0 :(得分:15)
add会立即更新整个对象,因此存在您可能错过属性的危险。 create可以通过显示属性名称来更新对象的部分信息。
假设cheeseBook已经保存如下。
let cheeseBook = Book()
cheeseBook.title = "cheese recipes"
cheeseBook.price = 9000
cheeseBook.id = 1
//update 1 - title will be empty
try! realm.write {
let cheeseBook = Book()
cheeseBook.price = 300
cheeseBook.id = 1
realm.add(cheeseBook, update:true)
}
//update2 - title will stay as cheese recipes
try! realm.write {
realm.create(Book.self, value:["id":1, "price":300], update:true)
}
答案 1 :(得分:0)
add()
将传入的对象添加到Realm(将对象修改为现在引用Realm中的数据),而create()
在Realm中创建对象的副本并返回复制,并不修改参数。