Reputation:
I have defined two very basic Object
as follows:
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"
}
}
Every Language
can have multiple Version
s, and every Version
has a reference (LinkingObject) to what Language
holds it.
Next, I have the following code:
let kjvVersion = Version(id: "kjv", name: "King James Version")
let englishLanguage = Language(id: "english", versions: [kjvVersion])
print(kjvVersion)
Inspecting kjvVersion.language
gives me back an empty LinkingObject
array. Why?! What am I doing wrong here?
Upvotes: 2
Views: 324
Reputation: 8138
LinkingObjects
objects contain the objects in the Realm which link to the containing object. Your objects are not managed by a Realm, so there will never be any objects in a Realm which link to them.
Upvotes: 2