Realm Object的自定义setter/willSet

Kev*_*cke 1 realm swift

每当我设置Realm对象的属性时,我想触发代表远程后端对象的其他对象的更改.

我想知道这是否仍然是推荐的最佳做法:

https://github.com/realm/realm-cocoa/issues/870#issuecomment-54543539

我试图做什么,但不起作用,因为它干扰了Realm:

dynamic var name: String = "" {
    willSet(newValue) {
        self.name = newValue
        self.widgetRemote?.name = newValue
    }
}
Run Code Online (Sandbox Code Playgroud)

bda*_*ash 5

是的,在realm/realm-cocoa#870中建议的解决方法仍然是实现这一目标的最佳方法.对于你的情况,你想做的事情如下:

@objc private dynamic var backingName = ""

var name : String {
    get {
        return backingName
    }
    set(newValue) {
        backingName = newValue
        widgetRemote?.name = newValue
    }
}

override class func ignoredProperties() -> [String] {
    return ["name"]
}
Run Code Online (Sandbox Code Playgroud)