Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了swift – Realm.create会用同一个主键更新对象吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我只是好奇,如果我调用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) /
我只是好奇,如果我调用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属性已更新为新值.

大佬总结

以上是大佬教程为你收集整理的swift – Realm.create会用同一个主键更新对象吗?全部内容,希望文章能够帮你解决swift – Realm.create会用同一个主键更新对象吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。