填充 UITableView 的最有效方法
Posted
技术标签:
【中文标题】填充 UITableView 的最有效方法【英文标题】:Most Efficient Way to Populate UITableView 【发布时间】:2012-05-11 16:53:08 【问题描述】:我正在开发一个由UINavigationController
和UITableViews
组成的应用程序,在导航控制器的根视图中将有许多项目(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 的最有效方法的主要内容,如果未能解决你的问题,请参考以下文章
如何在异步获取 JSON 数据以填充到 UITableView 中时显示 UIActivityIndicatorView?