我可能会将 var 狗重命名为 var 狗,以表明它可能包含不止一只狗。
这是一个简单的解决方案,可以打印主人的姓名和狗的数量。
do {
let realm = try Realm()
let people = realm.objects(Person.self)
for person in people {
let name = person.personName
print(name)
let dogs = person.dogs
print(dogs.count)
}
} catch let error as NSError {
print(error.localizedDescription)
}
领域列表具有数组功能,因此可以对其进行迭代,可以使用计数,也可以进行过滤。
以及你问题中的代码
let owners = realm.objects(Person.self)
会将 Realm 中的所有 Person 对象分配给所有者 var (Person 数组),因此它不是一个人,而是所有人,这就是为什么它没有 .dog 属性。
您将需要建立whichperson 应该位于 tableView 的每个部分中,查询该 person 的 Realm,然后返回 person.dogs.count。
原始问题中未显示用于确定如何确定哪个人进入哪个部分的代码,但让我们假设您希望第 0 部分中的人员 0 (可能存在排序问题,因此这只是概念性的)
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let owners = realm.objects(Person.self).sorted('name')
let thisOwner = owners[section]
let dogCount = thisOwner.dogs.count
return dogCount
}