【发布时间】:2020-09-29 13:56:15
【问题描述】:
有没有人尝试将 Realm 与 diffable 数据源结合使用?似乎有一个我无法理解的问题。
因此,当我们使用“传统”数据源 API 时,在 cellForRowAt 中,我们基于 基于索引 获取特定行的对象,并且由于 Realm返回符合 Collection 的通用 Results 类型(例如let items = Results<Item>)内的对象,我们基本上可以像往常一样访问元素:items[indexPath.row]
但是,当您使用 diffable 数据源 并创建 快照 时,您会得到这样的结果:var snapshot = NSDiffableDataSourceSnapshot<Int, Item>。您通过执行snapshot.appendSections([0]) 添加一个部分,然后您必须将项目添加到该部分。 我的主要问题是你不能做snapshot.appendItems(items),因为items 的类型是Results<Item>,而不是Array<Item>。我在这里遗漏了什么吗?
此外,Realm 的 Object 类似乎有自己的 Hashable 实现,所以我认为除了覆盖 Realm 的 primaryKey 并实现自己的自动增量功能之外,没有办法确保对象的唯一性。这一切对我来说似乎有点奇怪,以至于我正在考虑切换到 Core Data。
没有在 StackOverflow 上找到类似的主题,因此我们将不胜感激。
【问题讨论】: