0

Ich verwende die Kerndaten zum Abrufen/Speichern der Daten. In meiner Anwendung verwende ich 90% der Kerndaten und 10% der Web-Services-API. Derzeit arbeite ich an der Optimierung. Früher habe ich mit NSOperationQueue und GCD-Operationen versucht. Ich fand - performBlock: und - performBlockAndWait: um die Thread-Operationen und den asynchronen (Hintergrund) Prozess aufzulösen. Das war besser für meinen Code geeignet. Ich initiierte managedjectContext mit ConcurrencyType als NSPrivateQueueConcurrencyType.Nebenläufigkeit in Core-Daten

** Ist es gut, NSPrivateQueueConcurrencyType allein in der gesamten Anwendung zu haben? **

NSManagedObjectContext *private = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType]; 

Antwort

2

Es ist OK, NSPrivateQueueConcurrencyType überall zu verwenden. Es ist vielleicht nicht bequem, aber das liegt an dir.

Der Vorteil von NSMainQueueConcurrencyType ist, dass, wenn Ihr Code in der Hauptwarteschlange ausgeführt wird, Sie performBlock oder performBlockAndWait nicht benötigen. Diese Methoden würden nur den Block in der Hauptwarteschlange ausführen, aber wenn Sie bereits in der Hauptwarteschlange sind, macht das keinen Unterschied. Dies kann UI-bezogenen Code einfacher machen. Ob Sie es verwenden, ist Ihr Anruf, abhängig davon, was Sie in Ihrem Code bequem finden.

+0

Aber die App wird abgestürzt, wenn ich nur NSPrivateQueueConcurrencyType verwende. – UnderDog

+1

Dann sollten Sie eine Frage stellen, wo Sie den Absturz beschreiben und Code einbinden, der das verursacht. Die gleichzeitige Verwendung der privaten Warteschlange ist in Ordnung, aber jeder Code kann ein Problem darstellen, wenn er nicht richtig geschrieben ist. –