Anhang C. Wie Asynchron funktioniert

Anfänger/innen verstehen manchmal nicht ganz, was es bedeutet, dass ihr Code asynchron läuft . Aber ein großer Teil deines Codes, wenn du iOS programmierst , ist asynchron, und es ist wichtig, dass du dir darüber im Klaren bist, was das bedeutet:

  • Ein NSItemProvider übergibt dir seine Daten asynchron.

  • Das Ergebnis der Autorisierungsanfrage kommt asynchron an.

  • Die Eigenschaften von AV Foundation werden asynchron eingestellt und die Videos werden asynchron exportiert.

  • Die meisten Interaktionen mit der Fotobibliothek sind asynchron.

  • Die Vernetzung erfolgt asynchron.

Und so weiter.

Asynchroner Code läuft aus dem Ruder

Asynchroner Code läuft zu einem unbestimmten Zeitpunkt. Noch wichtiger ist, dass er nach dem umgebenden Code ausgeführt wird. Das Wichtigste, was du über asynchronen Code wissen musst, ist, dass die Reihenfolge, in der dein Code erscheint, nicht die Reihenfolge ist, in der er ausgeführt wird.

Überlege dir Folgendes (und siehe Kapitel 24):

func doSomeNetworking() {
    // ... prepare url ...
    let session = URLSession.shared 1
    let task = session.downloadTask(with:url) { loc, resp, err in 2
        // ... completion function body goes here ... 
    }
    task.resume() 
}

Die Methode downloadTask(with:completionHandler:) ruft ihre Abschlussfunktion ...

Get Programmierung iOS 14 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.