填充 UITableView 的最有效方法

Posted

技术标签:

【中文标题】填充 UITableView 的最有效方法【英文标题】:Most Efficient Way to Populate UITableView 【发布时间】:2012-05-11 16:53:08 【问题描述】:

我正在开发一个由UINavigationControllerUITableViews 组成的应用程序,在导航控制器的根视图中将有许多项目(50+),并且每个详细视图中可能有 30 行。

填充列表最有效的方法是什么?核心数据还是 Plist?

在规范中可以每月向列表推送更新,因此它们始终保持最新状态。这会影响选择,哪种方法更容易批量更新?

谢谢

【问题讨论】:

【参考方案1】:

我会选择核心数据。

比较容易使用;如果应用程序需要增长,它会为您提供更大的灵活性。 Core Data 可以由 SQLLite 支持,因此性能非常好。批量更新也是可管理的。

【讨论】:

【参考方案2】:

Core Data 是迄今为止最好的,尤其是因为您希望以后能够对这些数据进行更新

关于更新。我不会“推出”这些内容,而是让应用程序对它们进行投票,也许在启动时,然后在后台获取任何新内容。

编辑:同样使用 Core Data 并使用 NSFetchedResultsController 很容易将新记录平滑地动画化到 UITableView 中,因为它们是在后台添加到数据存储中的

【讨论】:

【参考方案3】:

恕我直言,我会尽量保持简单,遵循古老的 KISS 原则。

在您当前的情况下,您似乎只需要显示只读数据,因此您需要的只是数据(例如文件,plist 格式,或 xml,或 json,或 csv 或其他格式。只是解析文件,填充您的业务对象,将它们添加到数组中。将该数组用于您的主视图和详细视图。这里不需要核心数据(假设 50+ 你并不意味着 50 - 50'000,因为在那个情况下,核心数据的内存管理会有所帮助;-)

如果将来您需要处理更新,您将更新整个列表,因此实际上只是替换旧文件(简单),或者进行增量更改。我只建议考虑在后一种情况下开始使用核心数据。

我个人在几个项目中使用核心数据,我喜欢它。但我不会仅仅因为它存在就推荐它,毕竟它会带来开销和复杂性。如果你想使用核心数据,你需要花一些时间来理解它的概念。不要低估这一点,有很多东西要阅读和理解,可能还有几个 WTF 时刻(只需在 SO 中寻找核心数据问题)。

明确一点:我不想劝你不要使用核心数据,我只是问你妈妈可能会问的问题:你真的需要它吗?

【讨论】:

以上是关于填充 UITableView 的最有效方法的主要内容,如果未能解决你的问题,请参考以下文章

Python - 生成填充的最有效方法是啥?

前向填充位数组的最有效方法

如何在异步获取 JSON 数据以填充到 UITableView 中时显示 UIActivityIndi​​catorView?

使用 Mongoose 和 GraphQL 从填充模型有条件地返回值的最有效方法?

TableView 不显示数据

如何从 alamofire 发布请求中使用 switfyJson 填充 UItableview 中的单元格