6

Realm中至少使用了 2 种主要的集合类型:

  1. 列表
  2. 结果

对象文档中的相关描述Results说:

结果是从对象查询返回的 Realm 中的自动更新容器类型。

因为我希望 myUITableView响应 Realm Object Server 上的任何更改,所以我真的认为我希望 myUITableView得到一个Results对象的支持。事实上,Results出于这个原因,我认为我总是想要一个对象来支持我的 UI。这仅通过List文档中的对象描述得到加强:

List 是 Realm 中用于定义对多关系的容器类型。

当然似乎 aList专注于数据建模......所以,作为 Realm 的新手并且只是阅读 API,我认为答案是使用该Results对象,但教程(第 5 步)使用该List对象,而RealmExamples示例代码使用Results.

我错过了什么?我应该使用List对象来支持我的UITableViews吗?如果有,原因是什么?

4

2 回答 2

4

简短的回答:List如果已经存在与您想要在表格视图中显示的内容非常匹配的,则使用 a,否则使用 a Results

如果List已经存储在 Realm 中的 a 表示的数据与您希望在表格视图中显示的内容相对应,那么您当然应该使用它来支持它。列表有一个有趣的属性,因为它们是隐式排序的,这有时会很有帮助,就像您在上面链接到的教程中一样,用户可以在其中重新排序任务。

Results包含Realm 中的查询结果。运行此查询通常比访问 a 具有更高的运行时开销List,具体程度取决于查询的复杂性和领域中的项目数。

话虽如此,变异 aList也具有性能影响,因为它以原子方式写入文件。因此,如果这是经常更改的内容,Results则 a 可能更合适。

于 2016-10-18T17:36:45.017 回答
2

You should use Results<> as the Results is auto updating to back your UITableView. List can be used to link child models in a Realm model. where as Results is used to query the Realm Objects and you should add a Realm Notification Token so you know when the Results are updated and take necessary action (reload table view etc.) Look here for realm notifications: https://realm.io/docs/swift/latest/#notifications

P.S. The data in that example is just static and no changes are observed

于 2016-10-18T06:50:42.887 回答