atualização de dados do núcleo em segundo plano
Eu preciso basicamente atualizar meus dados principais em um segmento de plano de fundo sem bloquear a interface do usuário e salvá-lo. Depois de salvar, você deve recarregar a Visualização de tabela para visualizar as alterações. Então, para fazer isso, pensei em usar
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];
});
});
e em getDataFromFile quando tento buscar dados
if(![NSThread isMainThread])
{
NSEntityDescription *entity = [NSEntityDescription entityForName:@"LogDetails" inManagedObjectContext:self.backgroundManagedObjectContext];
[request setEntity:entity];
logs = [self.backgroundManagedObjectContext executeFetchRequest:request error:nil];
}
Eu recebo erro* Encerrando o aplicativo devido à exceção não identificada 'NSInternalInconsistencyException', razão: '+ entityForName: não foi possível localizar um NSManagedObjectModel para o nome da entidade' LogDetails ''
Alguém pode explicar por que estou recebendo este erro
Também tenho outra dúvida se incluí-lo como background managedObjectContext ou child managedObjectContext com parent como thread principal managedObjectContext