在Realm中存储具体的通用子类

时间:2016-08-23 08:36:48

标签: ios swift realm

是否可以在Realm中存储具体的通用子类?

例如:

class MyClass<T> : Object{}

class ConcreteMyClass : MyClass<String> {}

我知道在Realm中存储 MyClass 是不可能的。但是,是否可以存储 ConcreteMyClass

1 个答案:

答案 0 :(得分:1)

是的,可以为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;
    }
)