Kerndatenupdate im Hintergrund

Grundsätzlich muss ich meine Kerndaten in einem Hintergrundthread aktualisieren, ohne die Benutzeroberfläche zu blockieren, und sie speichern. Nach dem Speichern sollte die Tabellenansicht neu geladen werden, um die Änderungen anzuzeigen. Also habe ich mir überlegt, dies zu tun

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];
    });
});

und in getDataFromFile, wenn ich versuche, Daten abzurufen

if(![NSThread isMainThread])
{
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"LogDetails" inManagedObjectContext:self.backgroundManagedObjectContext];
    [request setEntity:entity];
    logs = [self.backgroundManagedObjectContext executeFetchRequest:request error:nil];
}

Ich bekomme einen Fehler* App wird aufgrund einer nicht erfassten Ausnahme "NSInternalInconsistencyException" beendet, Grund: "+ entityForName: Ein NSManagedObjectModel für den Entitätsnamen" LogDetails "konnte nicht gefunden werden."

Kann jemand erklären, warum ich diesen Fehler erhalte

Ich habe auch noch einen weiteren Zweifel, ob ich es als Hintergrund-managedObjectContext oder als untergeordnetes managedObjectContext mit übergeordnetem Thread als managedObjectContext aufnehmen soll

Antworten auf die Frage(1)

Ihre Antwort auf die Frage