我是 Realm 的新手,我以前使用过 MagicalRecord。
在 MagicalRecord 中,我可以处理导入功能,甚至可以为多个候选名称设置一些映射键。
我想自定义我的 Realm 对象的一些属性。
我发现DynamicObject
这看起来像我想要的。但是,我不知道如何使用它。
我是 Realm 的新手,我以前使用过 MagicalRecord。
在 MagicalRecord 中,我可以处理导入功能,甚至可以为多个候选名称设置一些映射键。
我想自定义我的 Realm 对象的一些属性。
我发现DynamicObject
这看起来像我想要的。但是,我不知道如何使用它。
要使用 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
}
}
}
请注意,使用 SwiftwillSet
或didSet
Realm Swift 可能不会像您期望的那样工作。它们仅针对未附加的独立对象触发。一旦你持久化一个对象或检索一个持久化的对象,所有的 getter 和 setter 都会被覆盖以直接访问持久化的值。
DynamicObject
不是你想要使用的。这适用于用例,在这些用例中,您对对象模式没有强有力的保证,并且需要处理非结构化数据或不是您自己创建的数据库。