调用SQLite数据库来更新UITableView

时间:2009-12-31 12:31:23

标签: iphone uitableview sqlite

我最近一直在问Obj-C循环缓冲区对象,假设这是在UITableView上控制大量数据的更好方法。
我找到了一个解决方案,就循环缓冲区对象而言,但我一直想知道可能是更好,更快,更高效的内存解决方案:调用我的SQLite DB来更新UITableView。
在某种程度上 - 在更新UITableView之后将释放内存,并且不需要保持对对象的引用,这比保持其中包含所有对象的常量NSMutableArray更有效并且节省内存。

如何使用大量数据(50k对象)更新UITableView,这些数据也存储在SQLite数据库中?

提前致谢, 〜纳塔纳瓦拉。

1 个答案:

答案 0 :(得分:3)

您所描述的正是NSFetchedResultsController的设计目标,并且是在iPhone上使用Core Data的巨大优势之一。使用NSFetchedResultsController,您可以从数据库中设置要在表视图中显示的元素的获取请求,并限制在任何给定时间加载的项的批量大小。这大大减少了内存消耗和加载时间 (在特定的例子中,我看到加载时间有8倍的改进)。

NSFetchedResultsController旨在与UITableView集成。有关具体示例,我将参考Apple的示例代码,例如他们的CoreDataBooks代码,以及Marcus Zarra的Core Data book和实用程序员iPhone SDK Development book中的相应部分。这两本书都对核心概念有很好的解释。