Publishers och Subscribers
Förstå det grundläggande flödet i Combine.
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].publisherOutput 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: NeverVad 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. 🎉
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
- Publishers och Subscribers
- Transformera med map och filter
- Debounce för direktsökning
- Koppla Combine till SwiftUI