4
是否可以在Realm中存儲具體通用子類?在Realm中存儲具體通用子類
例如:
class MyClass<T> : Object{}
class ConcreteMyClass : MyClass<String> {}
我知道這是不可能的存儲MyClass的在領域。但是,是否可以存儲ConcreteMyClass?
是否可以在Realm中存儲具體通用子類?在Realm中存儲具體通用子類
例如:
class MyClass<T> : Object{}
class ConcreteMyClass : MyClass<String> {}
我知道這是不可能的存儲MyClass的在領域。但是,是否可以存儲ConcreteMyClass?
是的,這是可以使用的具體的通用子類領域模型,你只需要告訴境界忽略非專業類:
import Cocoa
import RealmSwift
class MyClass<T>: Object {
dynamic var parentProp = 0
required init() {
super.init()
}
}
class ConcreteMyClass: MyClass<String> {
dynamic var childProp = 0
required init() {
super.init()
}
}
let realm = try! Realm(configuration: Realm.Configuration(objectTypes: [ConcreteMyClass.self]))
try! realm.write {
realm.add(ConcreteMyClass())
}
print(realm.objects(ConcreteMyClass.self))
,它記錄:
Results<ConcreteMyClass> (
[0] ConcreteMyClass {
parentProp = 0;
childProp = 0;
}
)
我知道我無法直接存儲仿製藥。然而ConcreteMyClass本身不是通用的,因此我希望這可以以某種方式工作。 – ph1lb4
啊,是的,這是有效的!抱歉誤解你的問題。很明顯,我只是誤解了它。我已經重寫了我的答案,以說明如何做到這一點。 – jpsim
我試圖實施您的解決方案。然而,當我嘗試調用ConcreteMyClass()它在下面的方法崩潰: @objc私有類FUNC getGenericListPropertyNames(對象:AnyObject) - > NSArray的 此外,當調試我發現對象的類型爲MyClass的而非ConcreteMyClass –
ph1lb4