RealmSwift通用字段

时间:2016-01-12 15:05:45

标签: ios swift realm

我有这个型号:

 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 = Cevent.detail = B我没有收到任何错误,但在记录中我有空数组,我该如何解决?

1 个答案:

答案 0 :(得分:1)

由于Realm的架构设计,无法定义能够接受多个类类型的通用Object属性;必须为该属性显式定义单个类类型。有关Realm在这方面的功能的更多信息,请查看Realm的文档'Model Inheritance' section

我鼓励你退后一步,重新考虑你的设计,为你想要达到的目标提出另一种设计模式。

Ismail建议为Event对象可能需要的每种细节设置多个属性是一个好主意。或者,您也可以将ABC子类的所有属性捆绑到一个Detail对象中,并且只设置与该特定属性相关的属性Event对象。