Ist es in Realm möglich, die umgekehrte Beziehung einer Eins-zu-Eins-Beziehung zu erhalten?Wie kann man eine inverse Beziehung einer Eins-zu-Eins-Beziehung mithilfe von Realm ermitteln?
Zum Beispiel:
class Dog: Object {
dynamic var name: String?
dynamic var owner: Person?
}
class Person: Object {
dynamic var name: String?
let dog = LinkingObjects(fromType: Dog.self, property: "owner").first
}
let person = Person()
person.name = "Harry"
try! realm.write {
realm.add(person)
}
let dog = Dog()
dog.name = "Fido"
dog.owner = person
try! realm.write {
realm.add(dog)
}
print(person.dog?.name) // -> result is nil
Und auch:
let arbitraryPerson = realm.objects(Person).filter("name contains 'Harry'").first!
let dogOwned = arbitraryPerson.dog
print(dogOwned?.name) // -> result is nil
Es scheint, dass ownedDog immer nil
ist. Warum konnte die inverse Beziehung nicht bestimmt werden? Oder sollte dog
immer von list<T>
Typ sein (d. H. Zu-viele-Beziehung), um eine Beziehung zwischen diesen Objekten zu erzwingen? In dieser Situation funktioniert es, aber es fühlt sich nicht richtig an, eine zu-viele-Beziehung zu erzwingen, wenn das nicht der Fall ist.
Dies ist eine sehr nützliche Lösung für mein Problem! – Gerard