首页 > 解决方案 > 可区分数据源性能问题

问题描述

我已经使用 diffable 数据源有UITableView一段时间了,我喜欢它。但是今天我意识到它的设计中固有的一个问题。要使用 diffable 数据源,需要在数据发生变化时生成并应用快照。如果数据量很大,或者更可能是数据量不是很大,但生成每个数据点的时间很短,那么生成快照的累积时间会变得很明显,导致用户体验不佳。我不认为旧 API 有这个问题,因为委托函数仅被调用以显示在屏幕上的项目。

由于它是一项新技术(它是为 SwiftUI 引入的,对吗?),我不敢相信它会有如此明显的限制。但是从我在网上找到的材料来看,我看不出它是如何解决这个问题的。在 WWDC 2019 session 220 视频中,演讲者提到它可以以透明的方式在后台线程上运行,但我认为这不一定能缓解所有场景中的问题。例如,在数据更改由用户交互发起的场景中,通常以同步方式处理数据和更新 UI,因此在后台运行并没有真正的帮助。

我想我一定错过了什么,但我看不出它是什么。任何解释将不胜感激。

标签: iosuikitdiffabledatasource

解决方案


推荐阅读