Swift Standardbibliothek (iOS/macOS): vollständiger Überblick

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

Swift Standardbibliothek (iOS/macOS): vollständiger Überblick



Die Swift Standardbibliothek ist eine grundlegende Sammlung von Typen, Protokollen und Funktionen, die direkt in die Sprache integriert sind. Sie bietet die grundlegende Funktionalität, die für die Entwicklung unter iOS, macOS, watchOS und tvOS erforderlich ist. Im Gegensatz zu Frameworks wie Foundation oder UIKit, die Teil des SDK sind, ist die Swift Standardbibliothek sofort ohne zusätzliche Importe verfügbar. In diesem Artikel werden wir ihre wichtigsten Komponenten, Datenstrukturen, Protokolle und Mechanismen der Speicherverwaltung im Detail analysieren.



Grundlegende Datentypen und Sammlungen



Swift bietet leistungsstarke und typsichere Sammlungen, die für die Leistung optimiert sind.



Arrays (Array)

Eine geordnete Sammlung von Elementen desselben Typs. Unterstützt wahlfreien Zugriff und dynamische Größenänderung.

var numbers: [Int] = [1, 2, 3]numbers.append(4)let first = numbers[0] // 1numbers.sort()


Mengen (Set)

Eine ungeordnete Sammlung eindeutiger Elemente. Ideal für Zugehörigkeitsprüfungen und mathematische Operationen.

let setA: Set<Int> = [1, 2, 3, 4]let setB: Set<Int> = [3, 4, 5, 6]let intersection = setA.intersection(setB) // {3, 4}let union = setA.union(setB) // {1, 2, 3, 4, 5, 6}


Wörterbücher (Dictionary)

Eine ungeordnete Sammlung von Schlüssel-Wert-Paaren. Schlüssel müssen hashbar sein (Hashable).

var capitals: [String: String] = ["Russland": "Moskau", "USA": "Washington"]capitals["Deutschland"] = "Berlin"if let russiaCapital = capitals["Russland"] {    print(russiaCapital) // Moskau}


Protokolle: Grundlage der Vielseitigkeit von Swift



Die Swift Standardbibliothek basiert auf Protokollen, die eine gemeinsame Schnittstelle für verschiedene Typen definieren.



  • Equatable — ermöglicht den Vergleich von Instanzen mit ==.
  • Hashable — erforderlich, um den Typ als Wörterbuchschlüssel oder Mengenelement zu verwenden.
  • Comparable — ermöglicht die Sortierung von Objekten (<, >, <=, >=).
  • Codable — kombiniert Encodable und Decodable zur Serialisierung in JSON, Property List und andere Formate.
  • CaseIterable — stellt automatisch eine Sammlung aller Aufzählungswerte bereit.


Beispiel für die Verwendung von Codable

struct User: Codable {    let id: Int    let name: String    let isActive: Bool}

let json = """{ "id": 42, "name": "Ivan", "isActive": true}""".data(using: .utf8)!

let decoder = JSONDecoder()if let user = try? decoder.decode(User.self, from: json) { print(user.name) // Ivan}


Speicherverwaltung: ARC und Copy-on-Write



Swift verwendet Automatic Reference Counting (ARC) zur Speicherverwaltung von Referenztypen (Klassen). Für Strukturen und Aufzählungen gilt die Wertkopiersemantik, jedoch mit der Optimierung Copy-on-Write (COW) für Sammlungen.



var array1 = [1, 2, 3]var array2 = array1 // Solange wir nichts ändern — Daten sind gemeinsamarray2.append(4)    // Hier erfolgt die tatsächliche Kopie (COW)print(array1.count) // 3 — das ursprüngliche Array hat sich nicht geändert


Generische Vorlagen (Generics)



Generics ermöglichen das Schreiben flexibler und wiederverwendbarer Funktionen und Typen ohne Leistungseinbußen.



func swapTwoValues<T>(_ a: inout T, _ b: inout T) {    let temporaryA = a    a = b    b = temporaryA}

var x = 10var y = 20swapTwoValues(&x, &y) // x = 20, y = 10


Optionale Typen (Optionals)



Die sichere Arbeit mit fehlenden Werten ist eine der Schlüsseleigenschaften von Swift. Optionals verhindern Nullpointer-Ausnahmen.



var optionalString: String? = "Hallo"// Optional bindingif let unwrapped = optional                    

Empfehlungen