podstawowa aktualizacja danych w tle
Muszę zasadniczo zaktualizować moje podstawowe dane w wątku w tle bez blokowania interfejsu użytkownika i zapisania go. Po zapisaniu należy przeładować widok tabeli, aby wyświetlić zmiany. Tak więc pomyślałem o użyciu
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];
});
});
oraz w getDataFromFile, gdy próbuję pobrać dane
if(![NSThread isMainThread])
{
NSEntityDescription *entity = [NSEntityDescription entityForName:@"LogDetails" inManagedObjectContext:self.backgroundManagedObjectContext];
[request setEntity:entity];
logs = [self.backgroundManagedObjectContext executeFetchRequest:request error:nil];
}
Dostaję błąd* Aplikacja kończąca z powodu nie przechwyconego wyjątku „NSInternalInconsistencyException”, powód: „+ entityForName: nie można zlokalizować NSManagedObjectModel dla nazwy jednostki„ LogDetails ”
czy ktoś może wyjaśnić, dlaczego otrzymuję ten błąd
Mam też inną wątpliwość, czy dołączyć go jako tło managedObjectContext lub child managedObjectContext z rodzicem jako głównym wątkiem managedObjectContext