iOS PFBatchFaultingArray-导致UITableView性能不佳(?)

iOS PFBatchFaultingArray-导致UITableView性能不佳(?),ios,objective-c,cocoa-touch,core-data,nsfetchedresultscontroller,Ios,Objective C,Cocoa Touch,Core Data,Nsfetchedresultscontroller,在我的一个应用程序中,我将核心数据与NSFetchResultController一起使用。我正在寻找提高性能的方法,其中一个问题是我的UITableViewController。这有点夸张。我使用了InstrumentsTime Profiler,我发现: 它似乎是通过以下方法调用的: - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { [..

在我的一个应用程序中,我将核心数据与NSFetchResultController一起使用。我正在寻找提高性能的方法,其中一个问题是我的UITableViewController。这有点夸张。我使用了Instruments
Time Profiler
,我发现:

它似乎是通过以下方法调用的:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    [...]
    Post *cellPost = [self.fetchedResultsController objectAtIndexPath:indexPath];
    [...]
}

我想知道是否有办法解决这个问题?或者可能是其他原因导致了性能问题?

PFBatchFaultingArray是一种数组,您可以通过执行配置为(或任何数字>0)的提取操作返回该数组。它的行为类似于一个常规数组,但它是
-objectAtIndex:
方法,如果需要,它将实际从磁盘中获取一组
fetchBatchSize
-ed对象。这可能会很慢,但它确实会降低内存使用率,因为只有
fetchBatchSize
许多对象实际需要在内存中,而不是
[array count]
许多对象

您可以尝试将获取请求配置为批大小为0,以禁用此功能。只要确保你能在内存中容纳你需要的所有对象

不过,优化应用程序的核心数据性能可能远不止这一个变化!本手册对技术有很好的概述
最后一段写得很好,答案也是:)谢谢,回答得好。我没有指定
fetchBatchSize
,核心数据是否有默认的提取大小?将其设置为0对性能没有多大影响,但现在我知道了
PFBatchFaultingArray
至少是什么。我来看看视频。谢谢