Realm Object的自定义setter / willSet

时间:2016-01-13 17:50:55

标签: swift realm

每当我设置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
    }
}

2 个答案:

答案 0 :(得分: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"]
}

答案 1 :(得分:0)

bdash在objc中的版本:

+(NSArray<NSString *> *)ignoredProperties
{
    return @[ @"name" ];
}

查看答案bdash快速提供以获取更多关于支持商店exampt从持久性进入领域商店的背景