首页 > 解决方案 > 如何跟踪领域中列表对象的先前父级

问题描述

假设我有这些对象

class Person {
  @objc dynamic var personID = ""

  var pets = List<Pet>()

  override class func primaryKey() -> String?
     return "personID"
  }
}

class Pet {
  @objc dynamic var petID = ""

  private let owners = LinkingObjects(fromType: Person.self, property: "pets")
  var owner: Person? { return owners.first }

  override class func primaryKey() -> String?
     return "petID"
  }
}

我实例化了一些对象

let john = Person()
john.personID = "abc"

let dog = Pet()
dog.petID = "dog"

let cat = Pet()
cat.petID = "cat"

let bird = Pet()
cat.petID = "bird"

然后为同一个人用不同的宠物做 2 次作业

作业 1

john.pets = [dog, cat]

意思是

dog.owner = john
cat.owner = john
bird.owner = nil 

作业 2

john.pets = [cat, bird]

意思是

dog.owner = nil
cat.owner = john
bird.owner = john

狗现在成了孤儿。有没有办法追踪约翰拥有的那条狗?

标签: iosswiftrealmrealm-list

解决方案


推荐阅读