If I initialize my NSFetchedResultController with a fetchRequest with a fetchLimit of 20, do I need to call performFetch any additional times if my user scrolls past the first 20 results? Or will performFetch be called for me automatically?
问问题
32 次
1 回答
0
如果您使用fetchLimit
,它不会更新,但如果您想要前 20 个结果,并自动更新更多,您可以使用setBatchSize
to 20
。
详情见下文:
fetchedObjects 数组的计数可能不是您想要做的,因为它不会更新持久存储中的更改。来自 NSFetchedResultsController 文档:
结果数组仅包含由获取请求 (fetchRequest) 指定且与其谓词匹配的实体的实例。(如果获取请求没有谓词,则结果数组包括获取请求指定的实体的所有实例。)
结果数组反映了控制器托管对象上下文中托管对象的内存状态,而不是它们在持久存储中的状态。但是,返回的数组不会随着托管对象的插入、修改或删除而更新。
如果您只想获取 20 个对象,请设置 NSFetchRequest 的获取限制。如果只想在内存中保留 20 个对象,请使用 NSFetchRequest 对象的 setBatchSize。
于 2014-02-27T14:43:06.180 回答