【发布时间】:2016-08-23 08:36:48
【问题描述】:
是否可以在 Realm 中存储一个具体的泛型子类?
例如:
class MyClass<T> : Object{}
class ConcreteMyClass : MyClass<String> {}
我知道在 Realm 中存储 MyClass 是不可能的。但是,是否有可能存储 ConcreteMyClass?
【问题讨论】:
是否可以在 Realm 中存储一个具体的泛型子类?
例如:
class MyClass<T> : Object{}
class ConcreteMyClass : MyClass<String> {}
我知道在 Realm 中存储 MyClass 是不可能的。但是,是否有可能存储 ConcreteMyClass?
【问题讨论】:
是的,可以为 Realm 模型使用具体的通用子类,您只需要告诉 Realm 忽略非专用类:
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;
}
)
【讨论】: