[英]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.