领域列表 属性 未保存数据

Realm list property not saving data

我有两个模型,我们称它们为学校和教师。型号如下

@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 对象保存在 realm write 闭包中。

在那之后我只得到学校领域对象,当我得到教师列表时,它总是得到 Nil。怎么回事?

我是漏掉了什么还是漏掉了什么来理解真正的 LIST 属性??

请帮忙

更新:这就是我获取对象的方式

let mSavedItems = mDbHelper.realmObj.objects(Schools.self)

if let teachers = mSavedItems[0].teachersList{// here teacher list is nil
  } 

您的 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>()
}