SwiftUI Academy · leksjon

Modifikatoren .task

Last inn data når en visning vises.

Leksjon 3 av 413 trinn

Modifikatoren .task er en gratis leksjon i SwiftUI Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i SwiftUI Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i SwiftUI Academy inneholder totalt 4 leksjoner.

Laster inn når en visning vises

Ofte vil du hente data idet en skjerm vises. Modifikatoren .task kjører asynkront arbeid akkurat når visningen vises. ⏱️

Legge til .task

Legg til .task i en hvilken som helst visning, og gi den en asynkron closure. SwiftUI starter arbeidet når visningen kommer på skjermen.

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

Den kaller asynkron kode

Inne i .task kan du fritt bruke await. Det gjør den til et naturlig sted for URLSession-hentingen når visningen kommer til syne.

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

Hvorfor ikke onAppear

Den eldre onAppear kan ikke vente på asynkront arbeid direkte. Modifikatoren .task er laget for samtidighet, så bruk den helst til lasting.

Automatisk kansellering

Når visningen forsvinner, kansellerer SwiftUI oppgaven for deg. Det stopper unødvendig arbeid og hindrer oppdatering av en visning som ikke lenger finnes. ✨

Reagere på en id

Gi .task en id, så kjører den på nytt hver gang denne verdien endres. Perfekt for å laste inn data på nytt når et valg oppdateres.

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

Oppdatere tilstand etter henting

Lagres resultatene i @State, oppdateres brukergrensesnittet når du tilordner dem. Visningen tegnes på nytt så snart dataene kommer.

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

Håndtere feil internt

Legg risikable kall i do/catch inne i oppgaven. Deretter kan du angi en feilmelding som visningen viser til brukeren.

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

Kjører på Main Actor

En .task-closure starter på main actor, så det er trygt å oppdatere tilstand og brukergrensesnitt fra den uten ekstra hopping.

Én oppgave per visningsperiode

Som standard kjører .task én gang per visning. For gjentatt oppdatering kan du heller bruke pull-to-refresh eller en id som endres.

Holde closure-en liten

Kall en navngitt function fra .task i stedet for å legge all logikken direkte der. Da holder du visningen ryddig og lett å lese.

.task { await viewModel.refresh() }

Hurtigsjekk

Hurtigsjekk av hvordan asynkrone innlastinger utløses.

Oppsummering: .task

Du har lært at .task kjører asynkront arbeid når en visning vises, kanselleres når den forsvinner, kan kjøre på nytt basert på en id, og er det naturlige stedet for henting. 👍

Gratis å komme i gang

Lær deg Swift med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «Modifikatoren .task» gratis?

Ja – hele teksten i «Modifikatoren .task» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av SwiftUI Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i SwiftUI Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Modifikatoren .task»?

Last inn data når en visning vises. Du øver på SwiftUI Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med SwiftUI Academy?

Ingen tidligere erfaring er nødvendig. SwiftUI Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Modifikatoren .task»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne SwiftUI Academy-leksjonen?

Ja. Alle SwiftUI Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Dekode JSON med Codable
  2. Kalle API-er med URLSession
  3. Modifikatoren .task
  4. Tilstander for lasting og feil
← Tilbake til SwiftUI Academy