Angenommen, ich habe tausend Datensätze von der Web-Service-API und wenn ich diese Datensätze in Core-Daten in privateContext hinzufügen möchten. Wie kann ich es simultan und nicht linear machen?Simultane Inserts in CoreData in iOS
Kann ich mich so etwas wie dispatch_apply
und laufen
let entity:NSEntityDescription = NSEntityDescription.entityForName(entityName,
inManagedObjectContext:managedContext)!
let managedObject:NSManagedObject = NSManagedObject(entity: entity,
insertIntoManagedObjectContext: managedContext)
gleichzeitig?
Sie können dispatch_async, performBlock (in managedContext) verwenden. Speichern Sie den Kontext nicht jedes Mal, wenn Sie alle Einfügeoperationen abgeschlossen haben, führen Sie den Speicherkontext aus. –
Meine Frage ist etwas anders .... Ich möchte simultan einfügen. Zum Beispiel möchte ich 100 Datensätze parallel in 10 verschiedenen Warteschlangen einfügen. –
Von diesem Artikel (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/Concurrency.html) scheint es, dass Sie für jede Warteschlange einen anderen privaten Warteschlangenkontext benötigen würden. Wenn Sie es zum Laufen bringen, frage ich mich, ob die zugrunde liegende Datenbank parallele Aktualisierungen erlaubt oder sie selbst serialisiert. –