Iphone 调用SQLite数据库以更新UITableView

Iphone 调用SQLite数据库以更新UITableView,iphone,uitableview,sqlite,Iphone,Uitableview,Sqlite,我最近一直在询问有关Obj-C循环缓冲区对象的问题,假设这是控制UITableView上大量数据的更好方法 就循环缓冲区对象而言,我已经找到了一个解决方案,但我一直想知道一个更好、更快、内存效率更高的解决方案:调用SQLite DB来更新UITableView 在某种程度上-更新UITableView后,内存将被释放,并且不需要保存对对象的引用,这将比保存一个包含所有对象的常量NSMutableArray更高效和节省内存 如何使用大量数据(50k对象)更新UITableView,这些数据也存储在

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

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

提前感谢,,
~Natanavra.

您所描述的正是设计的目的,也是在iPhone上使用核心数据的巨大优势之一。使用NSFETCHERDESultsControl,您可以为表视图中显示的元素设置数据库中的获取请求,并限制在任何给定时间加载的项目的批处理大小。这大大减少了内存消耗和加载时间 (我在具体示例中看到加载时间提高了8倍)


NSFetchedResultsController旨在与UITableView集成。对于具体的例子,我会参考苹果的示例代码,比如他们的一个,以及Marcus Zarra和Practical Programmers中的相应章节。这两本书都很好地解释了核心概念。

谢谢你的回答;我不久前已经研究过CoreData,但我的系统已经使用SQLite,我真的不想改变我应用程序的核心。我想知道您对使用SQLite实现NSFetchedResultsController构建的相同功能的看法。再次感谢您的回答。我的建议是将您现有的SQLite数据库迁移到核心数据。我最近为自己的应用程序完成了这样的迁移,以便利用核心数据提供的功能。我的数据模型非常复杂,但编写迁移例程只需几天时间。您将花费更多的时间实现自己的批处理获取、缓存和内存管理过程,而不仅仅是将数据库移到核心数据并使用它提供的内容。我使用sqlcipher,所以我自己不能使用核心数据。我将亲自尝试一下这个问题,我想最后我们真正讨论的是只查询您需要的对象,首先查询所有对象的计数,然后请求您需要的对象,偏移量设置为indexPath.row。