【发布时间】:2012-06-06 05:26:06
【问题描述】:
我已经使用通常的样板代码设置了一个 Core Data 应用程序,并且 RootViewController 通过调用以下代码来初始化 FRC:
- (NSFetchedResultsController *)fetchedResultsController
{
if (__fetchedResultsController != nil)
{
return __fetchedResultsController;
}
// configure the fetchRequest, sectionKey and cacheName
__fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest: fetchRequest
managedObjectContext: self.managedObjectContext
sectionNameKeyPath: sectionKey
cacheName: cacheName];
return __fetchedResultsController;
}
我见过的所有示例代码都是这样做的。但是,我有一个庞大的数据集和超过 15,000 个条目,在 iPhone 4S 上启动应用程序大约需要 5 秒。这是启用缓存(没有它,需要 11 秒)和索引属性。
所以我希望能够显示应用程序正在等待加载的UIActivityIndicatorView。我知道通常如何在后台线程中加载核心数据对象,然后将它们合并回主线程,但是如何在后台线程中初始化 FRC,以便在后台加载和分割所有对象?
我知道我可以加载所有对象并将它们在后台线程中分区到自定义字典中并使用它来呈现数据,但我更愿意使用标准的 FRC 调用和委托。
谢谢。
【问题讨论】:
标签: core-data nsfetchedresultscontroller nsmanagedobjectcontext