Actors in Swift: Vollständige Anleitung mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Actors in Swift: Vollständige Anleitung für sichere Nebenläufigkeit

1. Was sind Actors und warum braucht man sie?

Actors sind ein fundamentales Konzept der Sprache Swift, eingeführt mit Swift 5.5, das eines der schwierigsten Probleme der Programmierung löst: den sicheren Umgang mit gemeinsamem, veränderlichem Zustand in einer Multithread-Umgebung. Vor der Einführung von Actors mussten Entwickler Sperren, Semaphore und DispatchQueues manuell verwalten, was zu schwer auffindbaren Fehlern wie Datenrennen (data races) und Deadlocks führte. Actors bieten einen sprachintegrierten Mechanismus zur Zustandsisolation und garantieren, dass der Zugriff auf Daten innerhalb eines Actors immer sequenziell erfolgt – selbst wenn mehrere Threads gleichzeitig darauf zugreifen.

Die Grundidee von Actors ist, dass jeder Actor seinen eigenen Zustand schützt. Externer Code kann nicht direkt auf die gespeicherten Eigenschaften eines Actors zugreifen – nur über seine Methoden. Der Swift-Compiler überwacht dies streng und gibt einen Fehler aus, wenn Sie versuchen, eine Eigenschaft eines Actors von außen zu lesen oder zu ändern, ohne das Schlüsselwort await zu verwenden. Dies macht das Actor-Modell nicht nur zu einer Bibliothek, sondern zu einem Teil des Typsystems der Sprache, wodurch potenzielle Nebenläufigkeitsprobleme bereits zur Kompilierzeit erkannt werden können – nicht erst zur Laufzeit.

Warum ist das wichtig? In der modernen Entwicklung für iOS, macOS, watchOS und tvOS arbeitet fast jede App mit Netzwerk, Datenbanken oder der Benutzeroberfläche, was asynchrone Operationen erfordert. Actors ermöglichen es, nebenläufigen Code zu schreiben, der leicht zu lesen, zu warten und zu debuggen ist. Sie sind besonders nützlich bei der Arbeit mit gemeinsamen Ressourcen wie Caches, Zustandsmanagern, Verbindungspools und allen anderen Objekten, auf die von verschiedenen Teilen der App gleichzeitig zugegriffen werden kann. Actors sind nicht nur ein „weiteres Werkzeug“, sondern ein fundamentaler Wandel in der Art und Weise, wie Swift-Entwickler über Nebenläufigkeit denken.

2. Installation

Actors sind ein fester Bestandteil der Sprache Swift ab Version 5.5. Für ihre Verwendung ist keine Installation externer Bibliotheken oder Pakete über Abhängigkeitsmanager (CocoaPods, Swift Package Manager, Carthage) erforderlich. Alles, was Sie brauchen, ist ein Projekt, das für die Verwendung von Swift 5.5 oder neuer konfiguriert ist.

Swift-Version prüfen

Stellen Sie sicher, dass Sie eine geeignete Compiler-Version installiert haben. Führen Sie dazu im Terminal aus:

swift --version

Sie sollten eine Zeile sehen, die Swift version 5.5 oder höher enthält. Wenn die Version niedriger ist, aktualisieren Sie Xcode (unter macOS) oder installieren Sie das aktuelle Swift-Toolkit von der offiziellen Webseite.

Projekt konfigurieren

Wenn Sie Xcode verwenden, stellen Sie sicher, dass in den Projekteinstellungen (Build Settings) der Parameter Swift Language Version auf Swift 5.5 oder höher gesetzt ist. Für Projekte mit Swift Package Manager (SPM) muss die minimale Plattformversion .iOS(.v15), .macOS(.v12), .tvOS(.v15) oder .watchOS(.v8) sein – ab diesen Versionen hat Apple die volle Unterstützung für Actors in seinen Frameworks eingeführt.

Beispielkonfiguration für Package.swift:

// swift-tools-version:5.7
import PackageDescription

let package = Package(
    name: "MyActorProject",
    platforms: [
        .iOS(.v15),
        .macOS(.v12)
    ],
    dependencies: [],
    targets: [
        .target(
            name: "MyActorProject",
            dependencies: []),
        .testTarget(
            name: "MyActorProjectTests",
            dependencies: ["MyActorProject"])
    ]
)

Alles ist bereit. Keine zusätzlichen Befehle wie pip install oder ähnliches nötig.

Empfehlungen