我有两个模型,可以将它们称为学校和教师。模型如下
@objcMembers public class Schools : Object {
dynamic var Id : String = ""
dynamic var UserId : Int64 = 0
dynamic var Name : String? = ""
dynamic var listTeachers : List<Teachers>? = nil
dynamic var teachersList : [Teachers]? = []
}
@objcMembers public class Teachers : Object {
dynamic var Id : String = ""
dynamic var UserId : Int64 = 0
dynamic var Name : String? = ""
}
现在在保存数据之前,我将Teachers对象(列表)放入School对象中,然后将该School对象保存在域写关闭中。
之后,我仅获得School领域对象,当我获得“教师”列表时,它始终为Nil。是什么情况?
我是否缺少某些内容或缺少某些内容以了解真正的LIST属性?
请帮助
更新:这就是我获取对象的方式
let mSavedItems = mDbHelper.realmObj.objects(Schools.self)
if let teachers = mSavedItems[0].teachersList{// here teacher list is nil
}
答案 0 :(得分:3)
您的Schools
声明有缺陷。您不应将List
声明为动态或可变的,也不应将其设置为Optional
。 docs清楚地指出,let listTeachers = List<Teachers>()
是声明多对多关系的正确方法。
Array
还不支持存储Realm
类型的属性,因此您应该删除teachersList : [Teachers]?
属性。
@objcMembers public class Schools : Object {
dynamic var Id : String = ""
dynamic var UserId : Int64 = 0
dynamic var Name : String? = ""
let listTeachers = List<Teachers>()
}