核心数据批量大小

way*_*yne 8 core-data

我是Core Data的新手.我正在攻击一个大型数据库,因此批处理/错误机制对我很重要.

我理解当使用与UITableView配对的NSFetchedResultsController时这是如何工作的,但如果我没有使用这种配对,即如果我允许用​​户按顺序浏览详细视图控制器(类似于Apple的Mail程序的操作方式)该怎么办?在消息级别)?

现在,我将已排序的获取结果加载到NSArray中,并可以根据需要遍历该结果.但是如果我将获取结果的批量大小限制为20,那么当用户想要导航到对象#21时我该怎么办?

Sco*_*ten 8

虽然NSFetchedResultsController旨在与UITableView一起使用,但您仍然可以单独使用它.

创建提取请求时,setLimit确定返回的总对象数.setBatchSize确定一次有多少个对象无故障.因此,最初,除了检索到的前20个对象之外的所有对象都将作为错误返回.当您访问第21项时,它将获取(无故障)结果集中的另外20个对象.

  • 实际上,我只是做了一些额外的阅读/实验,我想我明白了.正如斯科特试图告诉我的那样,setBatchSize只会影响有多少个对象发生故障; setLimit会影响检索的对象数.因此,如果我的查询返回1,000个对象而我的批量大小为20,则该数组将包含所有1,000个对象; 它只是因为它们都会出现故障,除了前20个.在故障触发或不触发方面,然后,我是直接访问结果数组还是使用NSFetchedResults控制器没有区别; 它是管理这个的MOC. (2认同)