我正在使用Core Data开发一个iPad应用程序,并希望有人可以澄清一些关于Core Data的内容。
现在,我通过对viewDidLoad
中的所有数据进行抓取请求来填充我的表格。我宁愿在tableView:cellForRowAtIndexPath:
中制作单独的抓取请求。谁能告诉我哪个更有效率,为什么?换句话说,与一个大请求相比,制作大量小请求的效率要低得多吗?
答案 0 :(得分:4)
您的提取请求有一个名为fetchBatchSize
的属性,它告诉您的提取请求只能批量提取数据。这意味着批量大小为20时,只有前20个项目被加载到内存中。当用户滚动超过20时,将自动加载另外20个项目,依此类推。
此外,Apple还提供了一个NSFetchedResultsController
类,用于管理数据的表示和编辑(它最适合表视图,但当然可以与其他类型的视图控制器一起使用)。它为您处理了许多其他优化(例如批量提取,内存管理等),因此提供了比您自己创建,启动和管理提取请求更好的性能。