我最近一直在询问有关 Obj-C 循环缓冲区对象的问题,假设这将是控制 UITableView 上大量数据的更好方法。
就循环缓冲区对象而言,我已经找到了一个解决方案,但我一直想知道也许是一个更好、更快、内存效率更高的解决方案:调用我的 SQLite DB 来更新 UITableView。
在某种程度上 - 内存将在更新 UITableView 后释放,并且不需要保存对对象的引用,这将比保存一个包含所有对象的常量 NSMutableArray 更有效和节省内存。
您将如何使用也存储在 SQLite 数据库中的大量数据(50k 对象)来更新 UITableView?
提前致谢,
〜纳塔纳瓦拉。
最佳答案
您所描述的正是NSFetchedResultsController专为在 iPhone 上使用 Core Data 而设计,并且是其巨大优势之一。使用 NSFetchedResultsController,您可以设置从数据库中获取元素的请求,以便在表格 View 中显示元素,并限制在任何给定时间要加载的项目的批量大小。这显着减少了内存消耗和加载时间
(在特定示例中,我已经看到加载时间提高了 8 倍)。
NSFetchedResultsController 旨在与 UITableView 集成。对于具体示例,我会引用 Apple 的示例代码,例如他们的 CoreDataBooks一,以及 Marcus Zarra 的 Core Data book 中的相应部分和实用程序员的iPhone SDK Development book .这两本书对核心概念都有很好的解释。
关于iphone - 调用 SQLite 数据库更新 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1985237/