Search code examples
iosiphoneswiftrealmrealm-list

Realm list property not saving data


I have two models, lets call them Schools, and Teachers. Models are as under

@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? = ""


   }

now before saving data I m putting Teachers objects (list) in School object then I save that School object in realm write closure.

after that I just get the School realm object and when I get the Teachers list, it always gets Nil. What is the case?

Am i missing something or missing something to understand the real LIST property??

please help

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
  } 

Solution

  • Your Schools declaration is flawed. You shouldn't declare a List as dynamic or mutable, nor should you make it Optional. As the docs clearly state, let listTeachers = List<Teachers>() is the correct way to declare a many-to-many relationship.

    Storing a property of type Array is also not supported by Realm, so you should delete the teachersList : [Teachers]? property.

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