使用 Realm,我应该使用 List 对象还是 Results 对象作为 UITableView 的数据源?
With Realm, should I use a List object or Results object as the data source for a UITableView?
Realm中至少使用了 2 种主要的集合类型:
Results
对象文档中的相关描述说:
Results is an auto-updating container type in Realm returned from
object queries.
因为我希望我的 UITableView
响应 Realm 对象服务器上的任何更改,所以我真的希望我的 UITableView
得到 Results
对象的支持。事实上,出于这个原因,我想我总是想要一个 Results
对象来支持我的 UI。这仅通过文档中对 List
对象的描述得到加强:
List is the container type in Realm used to define to-many
relationships.
当然 List
似乎专注于数据建模......所以,作为 Realm 的新手并且只是阅读 API,我认为答案是使用 Results
对象,但 tutorial (Step 5) uses the List
object while the RealmExamples 示例代码使用 Results
.
我错过了什么?我应该使用 List
对象来支持我的 UITableViews
吗?如果有,原因是什么?
您应该使用 Results<>,因为 Results 会自动更新以支持您的 UITableView。列表可用于 link 领域模型中的子模型。其中 Results 用于查询 Realm 对象,您应该添加一个 Realm Notification Token,以便您知道 Results 何时更新并采取必要的操作(重新加载 table 视图等)。在此处查找领域通知:https://realm.io/docs/swift/latest/#notifications
P.S。该示例中的数据只是静态的,没有观察到任何变化
简短回答:如果已经存在与您要在 table 视图中显示的内容非常匹配,则使用 List
,否则使用 Results
.
如果 List
表示的数据已经存储在您的 Realm 中,与您想要在 table 视图中显示的内容相对应,您当然应该使用它来支持它。列表有一个有趣的 属性,因为它们是隐式排序的,这有时会很有帮助,就像您在上面链接到的教程中一样,用户可以在其中 重新排序 任务。
Results
包含 Realm 中查询的 结果 。 运行 此查询通常比访问 List
具有更高的运行时开销,具体多少取决于查询的复杂性和 Realm 中的项目数。
也就是说,改变 List
也会对性能产生影响,因为它是以原子方式写入文件的。因此,如果这是经常更改的内容,Results
可能更合适。
Realm中至少使用了 2 种主要的集合类型:
Results
对象文档中的相关描述说:
Results is an auto-updating container type in Realm returned from object queries.
因为我希望我的 UITableView
响应 Realm 对象服务器上的任何更改,所以我真的希望我的 UITableView
得到 Results
对象的支持。事实上,出于这个原因,我想我总是想要一个 Results
对象来支持我的 UI。这仅通过文档中对 List
对象的描述得到加强:
List is the container type in Realm used to define to-many relationships.
当然 List
似乎专注于数据建模......所以,作为 Realm 的新手并且只是阅读 API,我认为答案是使用 Results
对象,但 tutorial (Step 5) uses the List
object while the RealmExamples 示例代码使用 Results
.
我错过了什么?我应该使用 List
对象来支持我的 UITableViews
吗?如果有,原因是什么?
您应该使用 Results<>,因为 Results 会自动更新以支持您的 UITableView。列表可用于 link 领域模型中的子模型。其中 Results 用于查询 Realm 对象,您应该添加一个 Realm Notification Token,以便您知道 Results 何时更新并采取必要的操作(重新加载 table 视图等)。在此处查找领域通知:https://realm.io/docs/swift/latest/#notifications
P.S。该示例中的数据只是静态的,没有观察到任何变化
简短回答:如果已经存在与您要在 table 视图中显示的内容非常匹配,则使用 List
,否则使用 Results
.
如果 List
表示的数据已经存储在您的 Realm 中,与您想要在 table 视图中显示的内容相对应,您当然应该使用它来支持它。列表有一个有趣的 属性,因为它们是隐式排序的,这有时会很有帮助,就像您在上面链接到的教程中一样,用户可以在其中 重新排序 任务。
Results
包含 Realm 中查询的 结果 。 运行 此查询通常比访问 List
具有更高的运行时开销,具体多少取决于查询的复杂性和 Realm 中的项目数。
也就是说,改变 List
也会对性能产生影响,因为它是以原子方式写入文件的。因此,如果这是经常更改的内容,Results
可能更合适。