swift - 如何从 Realm 列表中获取要在 UITableview 中使用的值

标签 swift realm

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

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 的狗的小狗。 (显然 Bob 拥有一个狗舍。)

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

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

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

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

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

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

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

最佳答案

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

这里是答案:

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

newDog = Dog()
newDog.name = "Phydeaux"
.....
try! realm.write {
    currentPerson?.dogs.append(newDog)

关于swift - 如何从 Realm 列表中获取要在 UITableview 中使用的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40163550/

相关文章:

ios - Realm iOS 教程,从头开始构建 iOS 应用程序,写入失败

javascript - realm-js - 将本地 Realm 数据复制到同步 Realm

swift - 使用 Swift 登录 FB

swift - 如何减少存储在 Realm 中的嵌套对象的可变性?

android - 插入或更新的 Realm 顺序

ios - Swift:用户在 UITextView 中键入时连续调整 tableViewCell 的大小

swift - 快速链接 Realm 中的对象的问题

ios - 每次回到欧盟都会弹出 Admob GDPR 同意对话框?

ios - 创建目录和调用 setResourceValue 的正确位置在哪里?

ios - 向 UItableview 中的每个单元格添加一个开关