обновление основных данных в фоновом режиме
Мне нужно в основном обновить данные ядра в фоновом потоке без блокировки пользовательского интерфейса и сохранить его. После сохранения следует перезагрузить таблицу View для просмотра изменений. Так что для этого я подумал об использовании
dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// Add code here to do background processing
NSManagedObjectContext *context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
self.backgroundManagedObjectContext = context;
if(self.managedObjectContext == nil)
self.managedObjectContext = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
self.backgroundManagedObjectContext.parentContext = self.managedObjectContext;
//update data
[self getDataFromFile];
dispatch_async( dispatch_get_main_queue(), ^{
// Add code here to update the UI/send notifications based on the
// results of the background processing
[[NSNotificationCenter defaultCenter] postNotificationName:@"ReloadAppDelegateTable" object:nil];
[context release];
});
});
и в getDataFromFile, когда я пытаюсь получить данные
if(![NSThread isMainThread])
{
NSEntityDescription *entity = [NSEntityDescription entityForName:@"LogDetails" inManagedObjectContext:self.backgroundManagedObjectContext];
[request setEntity:entity];
logs = [self.backgroundManagedObjectContext executeFetchRequest:request error:nil];
}
Я получаю ошибку* Завершение работы приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «+ entityForName: не удалось найти NSManagedObjectModel для имени объекта« LogDetails »
Может кто-нибудь объяснить, почему я получаю эту ошибку
Также у меня есть еще одно сомнение, включать ли его в качестве фонового управляемогоObjectContext или дочернего управляемогоObjectContext с родителем в качестве основного потока managedObjectContext