SwiftUI Academy · Lektion

Publishers och Subscribers

Förstå det grundläggande flödet i Combine.

Lektion 1 av 413 steg

Publishers och Subscribers är en gratis lektion i SwiftUI Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för SwiftUI Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i SwiftUI Academy innehåller totalt 4 lektioner.

Möt Combine

Combine är Apples ramverk för att hantera värden som anländer över tid, till exempel tryck, timers eller nätverkssvar. 🌊

Värden över tid

I stället för att hämta data en gång beskriver du en ström av värden och reagerar varje gång ett nytt värde anländer, nu eller senare.

Vad en Publisher gör

En Publisher är källan. Den skickar värden nedströms och meddelar när den är klar eller misslyckas.

let publisher = [1, 2, 3].publisher

Output och Failure

Varje publisher deklarerar två typer: dess Output (värdena den skickar) och dess Failure (felet den kan kasta).

Just(42) // Output: Int, Failure: Never

Vad en Subscriber gör

En Subscriber ansluter till en publisher, tar emot varje värde när det anländer och avgör vad som ska göras med det.

Ansluta med sink

Subscriber-typen sink är den enklaste: du skickar in en closure som körs för varje mottaget värde.

publisher.sink { value in
    print(value)
}

Hantera slutförande

En mer komplett sink tar två closures: en för slutförandet (finished eller failure) och en för varje värde.

publisher.sink(
    receiveCompletion: { print($0) },
    receiveValue: { print($0) }
)

Lagra prenumerationen

En prenumeration returnerar en cancellable. Håll den vid liv, annars rivs strömmen ned omedelbart.

var bag = Set<AnyCancellable>()
publisher.sink { _ in }
    .store(in: &bag)

Just och Empty

Just skickar ett värde och avslutas sedan. Empty avslutas utan några värden alls. Båda är användbara byggblock.

let one = Just("hello")

Subjects skickar värden

En PassthroughSubject låter dig skicka värden manuellt och passar perfekt för att vidarebefordra händelser som du kontrollerar.

let subject = PassthroughSubject<Int, Never>()
subject.send(5)

Flödet mellan hämtning och skickande

Subscribern signalerar efterfrågan, publishern skickar värden och slutförandet avslutar relationen på ett ordnat sätt.

Snabb kontroll

Du kopplade en closure till en publisher, men inget skrevs ut. Vad gick troligen fel?

Sammanfattning: Combine-trion

Du har mött de tre aktörerna: en publisher skickar värden, en subscriber tar emot dem och en lagrad cancellable håller länken vid liv. 🎉

Gratis att börja

Lär dig Swift med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Publishers och Subscribers” gratis?

Ja – hela texten till ”Publishers och Subscribers” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i SwiftUI Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i SwiftUI Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Publishers och Subscribers”?

Förstå det grundläggande flödet i Combine. Ni övar på SwiftUI Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig SwiftUI Academy?

Du behöver inga förkunskaper. Utbildningen i SwiftUI Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Publishers och Subscribers”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här SwiftUI Academy-lektionen?

Ja. Varje SwiftUI Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Publishers och Subscribers
  2. Transformera med map och filter
  3. Debounce för direktsökning
  4. Koppla Combine till SwiftUI
← Tillbaka till SwiftUI Academy