nsprogress

___ tag123multithreading ___ Multi-Threading ist die Fähigkeit eines Computers oder eines Programms, Arbeit gleichzeitig oder asynchron auszuführen, indem mehrere gleichzeitige Ausführungsströme (im Allgemeinen als Threads bezeichnet) verwendet werden. ___ tag123objectivec ___ Dieses Tag sollte nur bei Fragen verwendet werden, die sich auf Objective-C-Features beziehen oder von Code in der Sprache abhängen. Die Tags [Kakao] und [Kakao-Touch] sollten verwendet werden, um nach Frameworks oder Klassen von Apple zu fragen. Verwenden Sie die verwandten Tags [ios], [macos], [apple-watch] und [tvos] für Probleme, die für diese Plattformen spezifisch sind. ___ tag123nsoperationqueue ___ Unter Mac OS X regelt die NSOperationQueue-Klasse die Ausführung einer Gruppe von NSOperation-Objekten. ___ qstnhdr ___ Verwenden von NSProgress mit geschachtelten NSOperationen ___ qstntxt ___

Ich habe %code% untersucht, aber festgestellt, dass die vorhandene Dokumentation, die Klassenreferenz und die Tutorials fehlen. Ich frage mich hauptsächlich, ob meine NSProgress auf meinen Anwendungsfall anwendbar ist. Die Klassenreferenzdokumentation bezieht sich entweder auf %code% oder %code% , ich mag mich irren, aber ich interpretiere %code% als einen Fall, in dem eine NSOperation eine Gruppe anderer %code% verwaltet. Ein Beispiel für meinen Anwendungsfall ist wie folgt:

  • Erstellen Sie eine Operation %code% für jede vorhandene Gruppe.
  • Fügen Sie jede dieser Operationen zu einem %code% hinzu.
  • Jede %code% -Operation erstellt eine %code% -Operation für jedes Element in ihrer Gruppe. Diese werden alle zu einem %code% hinzugefügt, das von der Operation verwaltet wird.

Ich hätte erwartet, dass %code% dies unterstützt, und erlaube mir, den Fortschritt von den verschachtelten Operationen ( %code% operation) auf die übergeordnete Operation und schließlich auf den Haupt-Thread und die UI zu übertragen. Aber ich hatte Schwierigkeiten, dies zu implementieren, es scheint, dass %code% eher für lange Operationen gedacht ist, die ihren gesamten Code auf einem Hintergrundthread ausführen, aber separate "Abschnitte" haben, die es einfach machen festzustellen, wann Fortschritte gemacht wurden, Wenn dies der Fall ist, ist die Verwendung des Begriffs %code% ein bisschen irreführend, da es an die Verwendung verschachtelter %code% erinnert.

Vielen Dank für Ihre Hilfe und lassen Sie mich wissen, ob weitere Informationen benötigt werden.

    
___ answer19213888 ___

%code% weiß nichts über %code% - die beiden Dinge sind orthogonal - aber das bedeutet nicht, dass es nicht mit ihnen verwendet werden kann. Die Idee hinter der Verschachtelung von %code% "tasks" besteht darin, dass die innere Aufgabe nichts über die äußere Aufgabe weiß und die äußere Aufgabe keinen direkten Zugriff auf die% ce_de% der inneren Aufgabe benötigt, um Updates dafür einzuholen. Ich habe mir ein kleines Beispiel ausgedacht:

%Vor%

Beachten Sie, dass wenn %code% verwendet wird, um den Status der Benutzeroberfläche zu übermitteln, Sie sicherstellen möchten, dass Sie jedes Mal, wenn Sie das Objekt %code% aktualisieren, dies aus dem Hauptthread tun Sie werden viele seltsame Abstürze bekommen.

Alternativ können Sie einfach NSURLConnection verwenden, um Dateien herunterzuladen, und dann einen Delegierten wie folgt haben:

%Vor%

Ich hoffe, das hilft.

    
___ tag123nsoperation ___ Die NSOperation-Klasse ist eine abstrakte Klasse, mit der Sie den Code und die Daten einer einzelnen Aufgabe kapseln ___ tag123nprogress ___ NSProgress ist eine API zum Verfolgen des Fortschritts in OS X 10.9 und iOS 7.1. ___
1
Antwort

Verwenden von NSProgress mit geschachtelten NSOperationen

Ich habe NSProgress untersucht, aber festgestellt, dass die vorhandene Dokumentation, die Klassenreferenz und die Tutorials fehlen. Ich frage mich hauptsächlich, ob meine NSProgress auf meinen Anwendungsfall anwendbar ist. Die Klassenreferenz...
04.10.2013, 18:38