Non si deve accedere a NSManagedObjectContext su più thread. Il NSManagedObjectContext creato in AppDelegate dovrebbe essere accessibile solo sul thread principale.
Ciò implica, è necessario creare un NSManagedObjectContext per ogni thread che si crea. Assicurati di impostare il contesto genitore di NSManagedObjectContext del thread come contesto principale.
Esempio: -
NSManagedObjectContext *mainContext; // = getMainContext
NSManagedObjectContext *threadContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
threadContext.parentContext = mainContext;
e quindi utilizzare threadContext sul filo ...
si può proseguire il UI relative recupero sul thread principale. O se è essenziale avere anche un altro thread, crea anche un contesto.
di conoscere la concorrenza Core Data in profondità vedere a tutorial
Impostazione rapporto contesto padre/figlio si fonderanno contesto del tuo thread con il contesto principale (è contesto genitore).
Per comprendere relazione padre/figlio contesto check this URL
o appena sotto questo diagramma -
crediti verso l'URL dell'articolo ...
fonte
2015-04-07 10:47:56
Perché si vuole utilizzare due fili in parallelo? – andrewbuilder
Un singolo coordinatore dell'archivio permanente gestirà il processo di inserimento dei dati nella tabella A e recupererà i dati dalla tabella B. Non è necessario che due contesti degli oggetti gestiti funzionino correttamente. È tuttavia possibile creare un thread privato per gestire il processo di persistenza (ad esempio il salvataggio dei dati) in modo da non bloccare l'interfaccia utente. – andrewbuilder