SwiftUI Academy · Lekcja

Modyfikator .task

Wczytuj dane, gdy pojawia się widok

Lekcja 3 z 413 kroki

Modyfikator .task to bezpłatna lekcja SwiftUI Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej SwiftUI Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs SwiftUI Academy zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

Loading When a View Appears

Often you want to fetch data the moment a screen shows. The .task modifier runs async work exactly when the view appears. ⏱️

Attaching .task

Add .task to any view and give it an async closure. SwiftUI starts that work as the view comes on screen.

List(users) { user in Text(user.name) }
    .task { await load() }

It Calls Async Code

Inside .task you can freely use await. That makes it the natural home for your URLSession fetch on appearance.

.task {
    users = try? await loadUsers()
}

Why Not onAppear

The older onAppear cannot await async work directly. The .task modifier is built for concurrency, so prefer it for loading.

Automatic Cancellation

When the view disappears, SwiftUI cancels the task for you. That stops wasted work and avoids updating a gone view. ✨

Reacting to an id

Pass an id to .task and it reruns whenever that value changes. Perfect for reloading when a selection updates.

.task(id: selectedID) {
    await loadDetail(selectedID)
}

Updating State After Fetch

Store results in @State so assigning them refreshes the UI. The view redraws as soon as the data arrives.

@State private var users: [User] = []

Handling Errors Inside

Wrap risky calls in do/catch inside the task. You can then set an error message that the view shows the user.

do { users = try await loadUsers() }
catch { errorText = "Failed" }

Runs on the Main Actor

A .task closure starts on the main actor, so updating state and UI from it is safe without extra hopping.

One Task per Lifetime

By default .task runs once per appearance. For repeated refresh use pull-to-refresh or a changing id instead.

Keeping the Closure Small

Call a named function from .task rather than stuffing logic inline. It keeps the view tidy and easy to read.

.task { await viewModel.refresh() }

Quick Check

Quick check on triggering async loads.

Recap: .task

You learned that .task runs async work when a view appears, cancels on disappear, can rerun on an id, and is the go-to place to fetch. 👍

Bezpłatny start

Ucz się Swift dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Modyfikator .task” jest bezpłatna?

Tak — pełny tekst „Modyfikator .task” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu SwiftUI Academy, przejdź na CoddyKit PRO. Kurs SwiftUI Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Modyfikator .task”?

Wczytuj dane, gdy pojawia się widok Ćwiczysz SwiftUI Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć SwiftUI Academy?

Nie wymagamy żadnego doświadczenia. SwiftUI Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Modyfikator .task”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji SwiftUI Academy?

Tak. Każda lekcja SwiftUI Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Dekodowanie JSON za pomocą Codable
  2. Wywoływanie API za pomocą URLSession
  3. Modyfikator .task
  4. Stany wczytywania i błędów
← Powrót do SwiftUI Academy