ios - Realm returns object with empty RLMArray as property -


i have class country. it's simple subclass of rlmobject. when i'm saving country have regions (property of type rlmarray containing several object of type region. rlmobject subclass) when i'm fetching realm regions nil.

i've double check realm browser , data there. maybe i'm using wrong technique fetch data?

at point use realm-objc because have support devices

country (27 lines)

public class country: rlmobject {    public dynamic var name = ""    public dynamic var desc = ""     public dynamic var id = 0     public var regions = rlmarray(objectclassname: region.classname())     override public static func primarykey() -> string? {         return "id"     }      override init!() {         super.init()     }      public func configure(id:int,json:json){         self.name = json["name"].stringvalue         if let desc = json["desc"].string {             self.desc = desc         }         (key:string, value:json) in json["regions"] {             let region = region()             region.configure(key.toint()!,json:value)             self.regions.addobject(region)          }         self.id = json["id"].intvalue     } } 

countrymanager (36 lines)

public class countrymanager: nsobject {      public func savewines(json:json) {         var countriesforstore = [country]()         let db = rlmrealm.defaultrealm()         (key:string, subjson:json) in json{             let country = country() //serialize each country             country.configure(key.toint()!,json:subjson)             countriesforstore.append(country)         }          db.beginwritetransaction()         db.addorupdateobjectsfromarray(countriesforstore)         db.commitwritetransaction()     }      public func regionsforcountrywithnamelike(name:string) -> rlmresults {         let db = rlmrealm.defaultrealm()         let countrypredicate = nspredicate(format: "name contains[c] %@", name)         let countries = country.objectswithpredicate(countrypredicate)          var rawregionnames = [string]()         country in countries {             if let c = country as? country {                 region in c.regions{                     rawregionnames.append((region as! region).name)                 }             }          }         let regionnames = "','".join(rawregionnames)         let regionpredicate = nspredicate(format: "name in {'\(regionnames)'}")         let regions = region.objectsinrealm(db, withpredicate: regionpredicate)         return regions     } } 

try changing public var regions dynamic public var regions, since realm requires rlmarray properties dynamic.


Comments

Popular posts from this blog

searchKeyword not working in AngularJS filter -

sequelize.js - Sequelize: sort by enum cases -

user interface - how to replace an ongoing process of image capture from another process call over the same ImageLabel in python's GUI TKinter -