首页 文章

领域列表属性不保存数据

提问于
浏览
0

我有两个模型,我们称之为学校和教师 . 模型如下

@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对象中然后我将该对象保存在realm写入闭包中 .

之后,我得到了学校领域的对象,当我得到教师名单时,它总是得到Nil . 怎么回事?

我错过了什么或遗漏了一些东西来理解真正的LIST属性?

请帮忙

Update: This is how I am getting object

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

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

1 回答

  • 3

    您的 Schools 声明存在缺陷 . 你不应该声明 List 是动态的或可变的,也不应该把它变成 Optional . 由于docs明确表示, let listTeachers = List<Teachers>() 是声明多对多关系的正确方法 .

    Realm 也不支持存储 Array 类型的属性,因此您应该删除 teachersList : [Teachers]? 属性 .

    @objcMembers public class Schools : Object {
        dynamic var   Id : String = ""
        dynamic var   UserId : Int64 = 0
        dynamic var   Name : String? = ""
        let listTeachers = List<Teachers>()
    }
    

相关问题