关于 swift:如何从 Realm List 中获取要在 UITableview 中使用的值

How to get the values from Realm List to be used in a UITableview

使用 Realm Swift 文档中的(修改过的)示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Dog: Object {
  dynamic var name =""
  dynamic var age = 0
  let puppies = List<Puppies>()
}
class Person: Object {
  dynamic var name =""
  dynamic var picture: NSData? = nil // optionals supported
  let dogs = List<Dog>()
}

class Puppies: Object {
        dynamic var name =""
}

让我们假设 Person.name = Bob,并且 Bob 在他的狗列表中添加了几只狗。我添加了另一个名为 Puppies 的模型类,它代表属于 Bob 的狗的小狗。 (显然鲍勃拥有一个狗窝。)

如何获取值以在 UITableview 中显示 Bob 的狗的名称和属于每条狗的小狗数量?

更具体地说,提取属于 Bob 的狗列表的属性值的代码是什么。我假设一旦我得到这些值,在表格视图单元格中列出它们就不难了。

我决定使用文档中稍作修改的示例而不是我自己的代码,这样阅读本文的人就不必尝试解释我的代码,而能够专注于解决方案。

我已经能够保存我的数据并相信我已经正确链接了对象之间的关系,但不知道如何根据我顶部的主键获取 List 对象的值水平模型。我遇到的问题是(使用上面的示例):小狗知道它们属于哪只狗,而狗知道它属于谁,但反向关系似乎不起作用。

(顺便说一句;我在游乐场的文档中使用了 LinkingObject 示例,它会抛出错误。我不确定这些示例是否在某些方面不完整。)

在领域浏览器(显示 Person 对象)中,我可以看到输入的数据,但是显示 [Dog] 的链接旁边有一个 0,当我单击链接时,显示的表格是空白的。也许解决这些问题将是使其他一切正常工作的答案。

请原谅我的无知。我还在学习。


感谢 Ahmad F. 为我指明了正确的方向。

答案如下:

我不知道如何在每个对象类中附加到列表属性。按照上面的示例,它是通过创建一个包含 Person 对象的变量来完成的。然后 realm.write 函数看起来像这样。

1
2
3
4
5
newDog = Dog()
newDog.name ="Phydeaux"
.....
try! realm.write {
    currentPerson?.dogs.append(newDog)