簡體   English   中英

如何強制包含計算屬性?

[英]How do I force include computed property?

我如何告訴領域我希望它計算和存儲只讀屬性? 假設我有以下模型:

class User: Object {
    @objc dynamic var fullName: String {
        return "\(name) \(surname)"
    }
    @objc dynamic var name = ""
    @objc dynamic var surname = ""
}

我想在寫操作上形成全名。 是否可以不使用虛擬二傳手的解決方法?

只讀屬性會被自動忽略,因為將它們存儲在數據庫中完全沒有意義。 如果您確實需要將其存儲在數據庫中,您可以為您的 User 類創建一個更新函數,並將其用於將實體保存到數據庫中。

像這樣的東西:

class User: Object {
    @objc dynamic var fullName = ""
    @objc dynamic var name = ""
    @objc dynamic var surname = ""

    static func create(name: String, surname: String, in realm: Realm) {
        let user = realm.create(User.self)
        user.name = name
        user.surname = surname
        user.fullName = "\(name) \(surname)"
}

然后你只需像這樣創建你的實體:

...
let realm = try! Realm()
try! realm.write {
    User.create(name: name, surname: surname, in: realm)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM