NSFetchedResultsController限制获取计数

时间:2013-07-12 00:13:20

标签: controller request limit fetch

如果我用fetchRequest初始化我的NSFetchedResultController,其fetchLimit为20,如果我的用户滚过前20个结果,是否需要再调用performFetch?或者会自动为我调用performFetch吗?

1 个答案:

答案 0 :(得分:0)

如果您使用的是fetchLimit,则不会更新,但如果您想要前20个结果,并且自动更新更多,则可以setBatchSize使用20

详见下文:

fetchedObjects数组的计数可能不是您想要执行的操作,因为它不会更新持久性存储中的更改。来自NSFetchedResultsController文档:

  

结果数组仅包含由提取请求(fetchRequest)指定的实体的实例,并且与其谓词匹配。 (如果获取请求没有谓词,则结果数组包含获取请求指定的实体的所有实例。)

     

结果数组反映了控制器的托管对象上下文中托管对象的内存中状态,而不是持久性存储中的状态。但是,返回的数组不会在插入,修改或删除托管对象时更新。

如果您只想获取20个对象,请设置NSFetchRequest的获取限制。如果只想在内存中保留20个对象,请使用NSFetchRequest对象的setBatchSize。