Bölgelerdeki bağlantılar tek yönlüdür. Bu yüzden bir çok kişiye ait olan Person.dogs, bir Dog örneğine ve bir kişiye ait bir Dog.owner özelliğine bağlanırsa, bu bağlantılar birbirinden bağımsızdır. Bir Kişinin bir Kişi örneğinin köpek mülküne eklenmesi, bu kişinin sahip olduğu köpeğin sahiplik özelliğini otomatik olarak ayarlamaz. İlişki çiftlerini manuel olarak senkronize etmek, hataya açık, karmaşık ve yinelenen bilgiler olduğundan, Realm, aşağıda açıklanan geri bağlantıları almak için bir API ortaya çıkarır.
Ters ilişkiler ile belirli bir nesneye belirli bir nesneye bağlanan tüm nesneleri elde edebilirsiniz. Örneğin, bir Köpek örneğindeki Object.linkingObjects(_:forProperty:)
numaralı çağrı, belirtilen sınıfın çağrılan örneğe bağlanan belirtilen sınıfın tüm nesnelerini belirtilen özellik ile döndürür. Bu Köpek üzerinde salt okunur (bilgisayarlı) sahipleri özelliği tanımlayarak bu modeli basitleştirmek mümkündür:
class Person: Object {
// ... other property declarations
let dogs = List<Dog>()
}
class Dog: Object {
dynamic var name = ""
dynamic var age = 0
var owners: [Person] {
// Realm doesn't persist this property because it only has a getter defined
// Define "owners" as the inverse relationship to Person.dogs
return linkingObjects(Person.self, forProperty: "dogs")
}
}
Bu benim okumanızı öneririz Realm's docs on relationships, alındı.
Cevabınız için çok teşekkür ederim. alemdeki belgeleri okudum. Ancak bazen okuma daha net hale getirmez. alıntı yaptığınız kod, demo veritabanında olduğu gibi kişiye olan bağlantıyla yeni sütun eklemez. – alexey
Sanırım sorunun ne olduğunu anlayamıyorum. "Aynı yapı nasıl yeniden yaratılır?" Gönderdiğiniz kod açıkladığınız yapıya sahip görünüyor, değil mi? Neyi başarmak istediğinizden farkı nedir? "Nesne özelliği için aynı bağlantıyı oluşturmak için objectReference özelliği için hangi kod gereklidir?" Aynı bağlantıyı iki ayrı bağlantı özelliği paylaşamaz, yani "bağlantılar tek yönlüdür" dür. Eğer sadece bir * link ayarlamak istiyorsanız, yukarıdaki linkimde yazdığı gibi 'linkingObjects (_: forProperty:)' kullanmalısınız. – jpsim
Soruma yeterince açık olmasaydım özür dilerim. başka bir deneme yapmama izin ver. lütfen [ekran görüntüsü] 'ne bakın (https://s13.postimg.org/5bkv8zunr/111.jpg). Ben Realm demo veritabanında aynı bağlantı bağlantısını elde etmeye çalışıyorum. – alexey