swift - fatal error at runtime with Realm using LInkingOjbects -


getting following fatal error.

fatal error: 'try!' expression unexpectedly raised error: error domain=io.realm code=1 "schema validation failed due following errors: - property 'gearmodel.category' declared origin of linking objects property 'categoryrepository.gearlist' links type 'categorymodel'" userinfo={nslocalizeddescription=schema validation failed due following errors: - property 'gearmodel.category' declared origin of linking objects property 'categoryrepository.gearlist' links type 'categorymodel', error code=1}:

object models here: gear model assigned 1 category

import foundation import realmswift  class gearmodel: object{      dynamic var gearid = nsuuid().uuidstring     dynamic var name = ""     dynamic var manufacturer = ""     dynamic var sortorder = 0     dynamic var category: categorymodel?      override class func primarykey() -> string? {return "gearid"}     } 

category model: trying list of gearmodel items category assigned.

    import foundation     import realmswift      class categorymodel: object{          dynamic var categoryid = nsuuid().uuidstring         dynamic var sortorder = 0         dynamic var name = ""         let gearlist = linkingobjects(fromtype: gearmodel.self, property: "category")  override class func primarykey() -> string? {return "categoryid"}     } 

category repository class: fatal error occurs on line "let realm =...." in allcategories() func

import foundation import realmswift  class categoryrepository: categorymodel{      class func getgearitemsforcategory(categoryid: string) -> results<gearmodel>     {         let realm = try! realm()          var gearitems = realm.objects(gearmodel.self)          let predicate = nspredicate(format: "categoryid = %@", categoryid)         gearitems = gearitems.filter(predicate)         return gearitems     }      class func getcountofgearitems(categoryid: string) -> int     {         let realm = try! realm()          var gearitems = realm.objects(gearmodel.self)          let predicate = nspredicate(format: "categoryid = %@", categoryid)         gearitems = gearitems.filter(predicate)         return gearitems.count     }      class func addcategory(categoryid: string, name: string, sortorder: int){          let realm = try! realm()          let category = categorymodel(name: categoryid, categoryid: name, sortorder: sortorder)          try! realm.write {             realm.add(category)         }     }      class func allcategories() -> results<categorymodel> {          let realm = try! realm()           return realm.objects(categorymodel.self).sorted(byproperty: "sortorder")     } 

inheriting class has linkingobjects properties not supported.

object , list properties in realm not covariant, meaning can point specified class, , not subclasses of class. means gearmodel.category cannot link categoryrepository objects, categoryrepository has inherited gearlist property trying list gearmodel objects link it.

in specific case, it's not clear why categoryrepository inheriting categorymodel.


Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -