2016-09-17 7 views
1

Bitte helfen Sie mir, diese Linie zu swift 3.0 zu konvertieren:Queues und Swift 3 Ausgabe

dispatch_async(DispatchQueue.global(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)) 

Und was bedeutet es genau? Etwas wie: Mache den Code in Klammern in der Hauptwarteschlange?

Vielen Dank im Voraus.

ps. Diese Codezeile wurde von apple's code genommen mit Kerndaten 3

Antwort

7

In Swift arbeiten Sie möchten diese

DispatchQueue.global(qos: .background).async { 

} 

schreiben Es bedeutet, was jeder der Code zwischen der Klammer geschrieben im Hintergrund durchführen wird. und wenn Sie Änderungen in diesem Hintergrund-Thread vornehmen wollen, müssen Sie zum Haupt-Thread wechseln. indem Sie den Block unten schreiben.

dispatch_async(dispatch_get_main_queue()) { 
    // Your code for UI Changes. 
} 

EDIT: Swift 3

DispatchQueue.main.async { 
} 
+0

'DispatchQueue.main.async {}' oder 'DispatchQueue.main.sync {}'. Für die Hauptwarteschlange. – Zico

+0

'dispatch_async (DispatchQueue.global (DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0))' Was ist mit '0'? Wie kann ich '0' setzen –

2

Einer der häufigsten Aufgabe in Grand Central Dispatch (GDC) Muster wird die Arbeit an einem globalen Hintergrund Warteschlange durchgeführt und die Benutzeroberfläche auf der Haupt-Warteschlange aktualisieren, sobald wie die Arbeit erledigt ist. Die neue API sieht so aus:

DispatchQueue.global(attributes: [.qosDefault]).async { 
    // Background thread 
    DispatchQueue.main.async(execute: { 
     // UI Updates 
    }) 
} 

Warteschlangen nehmen jetzt Attribute auf init. Dies ist ein Swift-optionSet und kann Warteschlangenoptionen wie seriell vs. gleichzeitig, Speicher- und Aktivitätsmanagementoption und die Dienstgüte (.default, .userInteractive, .userInitiated, .utility und .background) enthalten.

Neue Änderungen:

  • DISPATCH_QUEUE_PRIORITY_HIGH: -> .userInitiated
  • DISPATCH_QUEUE_PRIORITY_DEFAULT: -> .default
  • DISPATCH_QUEUE_PRIORITY_LOW: -> .utility
  • DISPATCH_QUEUE_PRIORITY_BACKGROUND: -> .background

Wenn Sie mehr erfahren möchten, ist dies ein gutes Gespräch https://developer.apple.com/videos/play/wwdc2016/720/

+0

danke für Hilfe! –