0

Ich postete Benachrichtigungen an die NSNotficiationCenter jedes Mal, wenn ich aus einer Schließung herauskommen musste, um die Benutzeroberfläche zu aktualisieren, aber das wurde langsam langweilig und ließ mich fragen, ob es da war ein besserer Weg. Nach kurzer Suche fand ich, dass man einfach so in die Hauptwarteschlange versenden kann aus:Die beste/gebräuchlichste Methode zum Aktualisieren der Benutzeroberfläche von Hintergrundthread

dispatch_async(dispatch_get_main_queue()) { 
    // update some UI 
} 

Dieser Ansatz weniger Code sicher ist, aber ich frage mich, ob es die Lesbarkeit verbessert. Meine Frage ist also, was in Swift als "der Weg zu gehen" angesehen wird, um die Benutzeroberfläche von einem Hintergrund-Thread zu aktualisieren?

+0

Ich glaube nicht, gibt es ‚einen Weg zu gehen‘ mit dieser (zumindest api weise), aber was Sie hier zeigt ist sehr verbreitet. Es gibt ein paar Open-Source-Helfer, die gcd-Aufrufe umhüllen und etwas syntaktischen Zucker hinzufügen. [Hier ist einer von ihnen] (https://github.com/duemunk/Async) – Alladinian

+0

Dies ist viel billiger als Benachrichtigungen und viel klarer – PeejWeej

Antwort

2

Dies ist der Weg zu gehen:

let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT 
dispatch_async(dispatch_get_global_queue(priority, 0)) { 
    // do some background task 
    dispatch_async(dispatch_get_main_queue()) { 
     // update some UI 
    } 
} 
+0

auch unter Berücksichtigung, dass dies viel billiger ist wie @PEEJWEEJ sagte unter meiner Frage werde ich geh damit. – Fr4nc3sc0NL

Verwandte Themen