如何定制吸气剂和放大器Realm Swift的二传手?

时间:2016-04-07 09:24:02

标签: realm realm-cocoa

我是Realm的新手,之前我曾经使用过MagicalRecord。

在MagicalRecord中,我可以处理导入功能,甚至可以为多个候选名称设置一些mappingKeys。

我想自定义Realm对象的一些属性。

我发现DynamicObject看起来像我想要的。但是,我不知道如何使用它。

1 个答案:

答案 0 :(得分:3)

要使用Realm Swift自定义getter和setter,您需要定义一个简单的底层存储属性。然后,您可以使用自定义setter和getter在其上定义的另一个属性访问此属性,如下所示。

public class Foo : Object {
    private dynamic var _bar: Int

    public var bar: Int {
        get {
            return _bar + 1
        }
        set {
            _bar = newValue - 1
        }
    }
}

请注意,使用Swift的willSetdidSet与Realm Swift可能无法正常工作。它们仅针对未附加的独立对象触发。保留对象或检索持久化的obejct后,将覆盖所有getter和setter以直接访问持久化的值。

DynamicObject不是您想要使用的。这是针对用例,您不必对对象架构有强有力的保证,并且需要处理您自己没有创建的非结构化数据或数据库。