我需要一个模型对象来初始化(并保持同步)一些数据结构以进行优化。
Model{
var shareInstance
var objA : ClassA
var init(){
objA.objB.configureNonRealmProperty() //1
}
}
ClassA:Object{
dynamic var objB : ClassB
}
ClassB : Object{
var non-realm-property
convenience init(...){ //2
configureNonRealmProperty()
}
configureNonRealmProperty(){}
}
不要让快速实现Realm既不多次子类Object,也不要覆盖init方法(这很荒谬,如果之前只知道...)我需要找到一种方法来执行类的方法,每当objB是调用。
问题:无论何时我访问objB,如果我保持对它的引用(动态引用),那么它是由领域独立地从数据库重新分配的,作为一个结果,如果我:
(1)直接在创建对象上调用方法configureNonRealmProperty()
(2)创建一个自定义初始化程序并在那里执行
objB总是被释放并在每次交互时重新分配(通过私有和不可覆盖的Object初始值之一),我每次都必须调用该死的configureNonRealmProperty()
,这没有任何意义。
问题:如何通过每次访问时释放/重新刷新的另一个域对象中的动态var来避免Realm Object引用?
我能想出的唯一解决方案就是拥有一个双层模型并在第二个模型中激活持久性,但此时我不会再看到任何实用程序让Realm失去所有(在这一点上)已经很少了。)
另一种方法是至少从领域中获得构造函数/析构函数回调,但仍然无法实现我的优化目的。
个人考虑:Realm绝对不够灵活和完整,不能成为这样一个普遍的框架(强制子类化它自己的对象而不是协议,不要让创建对象层次结构,动态所有变量,没有init覆盖,ecc)< / p>