Swift Academy · Lektion

Netzwerkzugriffe mit Combine und URLSession

Verwenden Sie URLSession.dataTaskPublisher mit Combine, um Netzwerkantworten zu verarbeiten.

Lektion 4 von 412 Schritte

Netzwerkzugriffe mit Combine und URLSession ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Willkommen

URLSession bietet über `dataTaskPublisher` integrierte Combine-Unterstützung. Zusammen mit `decode` ermöglicht dies typsichere Netzwerkanbindungen mit nur wenigen Zeilen Code.

dataTaskPublisher

```swift URLSession.shared .dataTaskPublisher(for: URL(string:"https://api.example.com/users")!) .sink(receiveCompletion: { print($0) }, receiveValue: { data, response in print(data.count) }) .store(in: &cancellables) ```

JSON decodieren

```swift struct User: Decodable { var name: String; var id: Int } URLSession.shared .dataTaskPublisher(for: url) .map(\.data) .decode(type: [User].self, decoder: JSONDecoder()) .receive(on: DispatchQueue.main) .sink(receiveCompletion: { print($0) }, receiveValue: { users in self.users = users }) .store(in: &cancellables) ```

Fehlerbehandlung mit catch

```swift .catch { error -> AnyPublisher<[User],Never> in print("Error: \(error)") return Just([]).eraseToAnyPublisher() } ```

retry

```swift .retry(3) // retry up to 3 times on failure ```

HTTP-Status validieren

```swift .tryMap { data, response -> Data in guard let http = response as? HTTPURLResponse, (200...299).contains(http.statusCode) else { throw URLError(.badServerResponse) } return data } ```

Einen generischen Publisher erstellen

```swift func fetch(_ url: URL) -> AnyPublisher { URLSession.shared.dataTaskPublisher(for: url) .map(\.data) .decode(type: T.self, decoder: JSONDecoder()) .eraseToAnyPublisher() } ```

Abbrechen

```swift var searchCancellable: AnyCancellable? searchCancellable?.cancel() // cancel previous searchCancellable = fetch(url).sink { ... } ```

flatMap für sequenzielle Anfragen

```swift fetch(userUrl) .flatMap { user in fetch(user.profileUrl) } .sink { profile in render(profile) } .store(in: &cancellables) ```

Mehrere Anfragen kombinieren

```swift Publishers.Zip(fetch(url1), fetch(url2)) .sink { a, b in combinedUI(a, b) } .store(in: &cancellables) ```

Kurzer Test

Welcher Combine-Operator decodiert die Ausgabe eines Publishers in einen `Decodable`-Typ?

Zusammenfassung

Die wichtigsten Punkte: • `dataTaskPublisher(for:)` – URL-Abrufe auf Basis von Combine • `.map(\.data)` → `.decode(type:decoder:)` für JSON • `.tryMap` validiert den HTTP-Status • `.retry(n)` für automatische Wiederholungsversuche • `.catch { }` stellt einen Fallback-Publisher bereit Kurs abgeschlossen! Als Nächstes: Strukturierte Nebenläufigkeit in Swift.
Kostenlos starten

Lerne Swift mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
122
Lektionen
409

Häufig gestellte Fragen

Ist die Lektion „Netzwerkzugriffe mit Combine und URLSession“ kostenlos?

Ja — der vollständige Text von „Netzwerkzugriffe mit Combine und URLSession“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Netzwerkzugriffe mit Combine und URLSession“?

Verwenden Sie URLSession.dataTaskPublisher mit Combine, um Netzwerkantworten zu verarbeiten. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Netzwerkzugriffe mit Combine und URLSession“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Publisher und Subscriber
  2. Operatoren: map, filter, combineLatest
  3. PassthroughSubject und CurrentValueSubject
  4. Netzwerkzugriffe mit Combine und URLSession
← Zurück zu Swift Academy