我是Realm的新手,之前我曾经使用过MagicalRecord。
在MagicalRecord中,我可以处理导入功能,甚至可以为多个候选名称设置一些mappingKeys。
我想自定义Realm对象的一些属性。
我发现DynamicObject
看起来像我想要的。但是,我不知道如何使用它。
答案 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的willSet
或didSet
与Realm Swift可能无法正常工作。它们仅针对未附加的独立对象触发。保留对象或检索持久化的obejct后,将覆盖所有getter和setter以直接访问持久化的值。
DynamicObject
不是您想要使用的。这是针对用例,您不必对对象架构有强有力的保证,并且需要处理您自己没有创建的非结构化数据或数据库。