Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何强制包含计算属性?_Swift_Realm - Fatal编程技术网

Swift 如何强制包含计算属性?

Swift 如何强制包含计算属性?,swift,realm,Swift,Realm,我如何告诉realm我希望它计算并存储只读属性?假设我有以下模型: class User: Object { @objc dynamic var fullName: String { return "\(name) \(surname)" } @objc dynamic var name = "" @objc dynamic var surname = "" } 我想把写动作的全名写下来。是否可能不使用虚拟setter的变通方法?只读属性将自动忽

我如何告诉realm我希望它计算并存储只读属性?假设我有以下模型:

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

我想把写动作的全名写下来。是否可能不使用虚拟setter的变通方法?

只读属性将自动忽略,因为将它们存储在数据库中完全没有意义。如果确实需要将其存储在数据库中,可以为用户类创建更新函数,并使用它将实体保存到数据库中

大概是这样的:

然后您只需创建如下实体:

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

我对领域没有经验,但这可能是一个复制品吗?@MartinR,我想在某种程度上可能是。也许值得用变通方法来回答我的问题?我认为它可以帮助人们。
...
let realm = try! Realm()
try! realm.write {
    User.create(name: name, surname: surname, in: realm)
}