1

我在 CoreData 数据库中有大量项目。一个item其实就是一个新闻实体,有tile、summary、content等。

我也有一个 UITableView。我正在做的是从 CoreData 数据库中读取项目(不仅仅是一次读取,但最终可能全部读取)并将它们显示在 UITableView 中。

假设the number of items is very very big不可能将所有项目读入内存,所以我需要一个缓冲的东西来将它们全部显示在 UITableView 中。

我知道这NSFetchedResultController是可以根据需要加载数据的候选者。

但是,我认为它只是阅读越来越多,从不倾倒东西,对吧?

那么,就我而言,如何从两端动态加载/卸载项目?

更准确地说,如果我向下滚动 UITableView,那么我应该在该方向加载更多项目并从相反方向从内存中删除项目。

有没有方便的方法或自动的方法呢?

谢谢

4

1 回答 1

1

是的,使用 NSFetchRequest 的 setBatchSize: 方法。这将允许 NSFetchedResultsController 实例仅将 batchSize 的数量保存到内存中。是 NSFetchRequest 的文档。

于 2012-09-11T13:41:57.073 回答