问题
Is it possible to store a concrete generic subclass in Realm?
For example:
class MyClass<T> : Object{}
class ConcreteMyClass : MyClass<String> {}
I know that it is not possible to store MyClass in Realm. However, is it somehow possible to store the ConcreteMyClass?
回答1:
Yes, it's possible to use concrete generic subclasses for Realm models, you just need to tell Realm to ignore the non-specialized classes:
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))
That logs:
Results<ConcreteMyClass> (
[0] ConcreteMyClass {
parentProp = 0;
childProp = 0;
}
)
来源:https://stackoverflow.com/questions/39096243/store-concrete-generic-subclass-in-realm