我只是好奇,如果我调用realm.create,它会从领域结果自动更新领域对象吗?
// Assuming a "Book" with a primary key of `1` already exists. try! realm.write { realm.create(Book.self,value: ["id": 1,"price": 9000.0],update: true) // the book's `title` property will remain unchanged. }
目前看起来我需要再次从领域读取以获取最新的对象.如果我错了,请纠正我.
谢谢
是的,在调用Realm.create(_:value:update :)时指定update:true将导致更新现有对象.
这是基于您提供的代码的片段,演示了这一点:
class Book: Object { dynamic var id = "" dynamic var title = "" dynamic var price = 0.0 override class func primaryKey() -> String? { return "id" } } let realm = try! Realm() let book = Book(value: ["1","To Kill a Mockingbird",9.99]) try! realm.write { realm.add(book) } let results = realm.allObjects(ofType: Book.self) try! realm.write { realm.createObject(ofType: Book.self,populatedWith: ["id": "1","price": 7.99],update: true) } print(book) print(results)
Book { id = 1; title = To Kill a Mockingbird; price = 7.99; } Results<Book> ( [0] Book { id = 1; title = To Kill a Mockingbird; price = 7.99; } )
如您所见,现有对象的price属性已更新为新值.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。