Я настроил приложение 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.
Спасибо.