我有这个型号:
import Foundation
import RealmSwift
class Event: Object {
dynamic var id = 0
dynamic var start_date = NSDate()
dynamic var end_date = NSDate()
dynamic var owner_id = 0
dynamic var subject = ""
}
我想添加一个这样的字段:
dynamic var detail:Object?
然后将此字段设置为(人,会议等等)之间的另一个模型,但它不起作用,所以我试图这样做:
class A : Object{
}
class B:A{
}
class C:A{
}
,字段是:
dynamic var detail:A?
但如果我设置:
event.detail = C
或event.detail = B
我没有收到任何错误,但在记录中我有空数组,我该如何解决?
答案 0 :(得分:1)
由于Realm的架构设计,无法定义能够接受多个类类型的通用Object
属性;必须为该属性显式定义单个类类型。有关Realm在这方面的功能的更多信息,请查看Realm的文档'Model Inheritance' section。
我鼓励你退后一步,重新考虑你的设计,为你想要达到的目标提出另一种设计模式。
Ismail建议为Event
对象可能需要的每种细节设置多个属性是一个好主意。或者,您也可以将A
,B
和C
子类的所有属性捆绑到一个Detail
对象中,并且只设置与该特定属性相关的属性Event
对象。