2016-12-09 1 views
2

я определил два очень простой Object следующим образом:Путаница почему Realm LinkingObjects() не работает :(

class Language: Object { 
    dynamic var id: String = "" //"english", "chinese" 
    let versions = List<Version>() 

    convenience init(id: String, versions: [Version]) { 
     self.init() 
     self.id = id 
     self.versions.append(objectsIn: versions) 
    } 

    override static func primaryKey() -> String? { 
     return "id" 
    } 
} 

class Version: Object { 
    dynamic var id: String = "" //"kjv", "cus" 
    dynamic var name: String = "" //"Union Simplified" 
    let language = LinkingObjects(fromType: Language.self, property: "versions") 

    convenience init(id: String, name: String) { 
     self.init() 
     self.id = id 
     self.name = name 
    } 

    override static func primaryKey() -> String? { 
     return "id" 
    } 
} 

Каждый Language может иметь несколько Version с, и каждый Version имеет ссылку (LinkingObject) в то, что Language держит его

Далее, я следующий код:.

let kjvVersion = Version(id: "kjv", name: "King James Version") 
    let englishLanguage = Language(id: "english", versions: [kjvVersion]) 
    print(kjvVersion) 

Осматривая kjvVersion.language возвращает мне пустой массив LinkingObject. Зачем?! Что я здесь делаю неправильно?

ответ

3

LinkingObjects объекты содержат объекты в Царстве, которые ссылаются на содержащийся объект. Ваши объекты не управляются Realm, поэтому никогда не будет объектов в Realm, которые ссылаются на них.

Смежные вопросы