Store concrete generic subclass in Realm

邮差的信 提交于 2019-12-10 16:18:13

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!