3

我是 Realm 的新手,我以前使用过 MagicalRecord。

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

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

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

4

1 回答 1

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
        }
    }
}

请注意,使用 SwiftwillSetdidSetRealm Swift 可能不会像您期望的那样工作。它们仅针对未附加的独立对象触发。一旦你持久化一个对象或检索一个持久化的对象,所有的 getter 和 setter 都会被覆盖以直接访问持久化的值。


DynamicObject不是你想要使用的。这适用于用例,在这些用例中,您对对象模式没有强有力的保证,并且需要处理非结构化数据或不是您自己创建的数据库。

于 2016-04-07T10:06:48.457 回答