2016-04-08 1 views
1

NSAsynchronousFetchRequest ist ein Wrapper um einen Standard NSFetchRequest und bietet asynchrone Ausführung in einem Hintergrund-Thread, Abbruch und Fortschrittsbericht sowie den zusätzlichen Bonus, dass während der Ausführung der Kontext nicht blockiert wird.Sollte ich NSAsynchronousFetchRequest anstelle von NSFetchRequest immer verwenden?

Fehle ich etwas und gibt es Fälle, in denen die Verwendung von "plain" NSFetchRequests immer noch über die Verwendung von NSAsynchronousFetchRequests empfohlen werden würde?

Antwort

0

Wenn Sie bereits einen Core-Datenstapel zum Laden von Hintergrunddaten eingerichtet haben, mit einem Hauptthreadkontext, bei dem die meiste Arbeit im Hintergrund ist und Ihre UI-Abrufvorgänge ziemlich einfach sind, müssen Sie keinen Async-Abruf verwenden.

Wenn Sie einen neuen Stapel erstellen und Sie wissen, dass die Verarbeitung der UI-Abrufverarbeitung komplex sein wird, weil Sie für jede Anforderung viele Prozessdaten abrufen und bereitstellen müssen, können asynchrone Abrufvorgänge hilfreich sein.

Es hängt wirklich davon ab, was Sie tun, es gibt keine einzige Regel. Wenn ein UI-Abruf Leistungsprobleme verursacht, ist es ein Kandidat für den Wechsel zu asynchron, um dieses Problem zu vermeiden. Wenn Sie einen Abruf ausführen können, während der Benutzer aktiv etwas anderes mit der Benutzeroberfläche tut, die auch ein guter Kandidat ist. Aber wenn der Benutzer auf das Ergebnis eines einfachen Abrufs wartet, dann ist das wahrscheinlich nicht wert ...

Verwandte Themen