如何告诉领域我想要它来计算和存储只读属性?假设我有以下模型:
class User: Object {
@objc dynamic var fullName: String {
return "\(name) \(surname)"
}
@objc dynamic var name = ""
@objc dynamic var surname = ""
}
我想在写作上形成全名。是否可以不使用虚拟设置器的解决方法?
答案 0 :(得分:1)
只读属性会被自动忽略,因为将它们存储在数据库中是完全没有意义的。如果确实需要将其存储在数据库中,则可以为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)
}