Verwenden von Threads zum Aktualisieren der Benutzeroberfläche mit Swift

8

Ich entwickle eine Software mit Xcode 6 mit Swift. Wenn ich einen Knopf drücke, nimmt mein Code einige Informationen aus dem Internet und schreibt sie auf mein NSWindow.

Stellen Sie sich so etwas vor:

%Vor%

Das Problem ist, dass es, wenn ich einmal auf die Schaltfläche geklickt habe, eine Weile dauert, bis ich die Liste der Ergebnisse sehe, in der Hauptzeit, in der die App eingefroren ist. Das ist, weil ich keine Threads verwende, um dieses Problem zu behandeln. Wie kann ich Threads implementieren, um zu sehen, dass jedes Etikett in jedem Schritt der Schleife aktualisiert wird? Ich bin neu mit Threads und Swift, also brauche ich Hilfe!

Danke Leute.

    
Matt 30.11.2014, 10:28
quelle

2 Antworten

12

Es gibt GCD . Hier ist eine grundlegende Verwendung:

%Vor% Die Funktion

dispatch_async führt den Codeblock in der angegebenen Warteschlange asynchron aus. Im ersten Aufruf von dispatch_async versenden wir den Code zur Ausführung in der Hintergrundwarteschlange. Nachdem wir result erhalten haben, aktualisieren wir das Label in der Hauptwarteschlange mit dem result

    
mustafa 30.11.2014, 10:56
quelle
12

Swift 3.0 Version

%Vor%

Gesendet, weil XCode nicht die korrekte Syntax von swift 2.0-Version vorschlagen kann

    
Fangming Ning 27.06.2017 19:28
quelle

Tags und Links