Swift Academy · Lektion

Udgivere og abonnenter

Forstå Publisher/Subscriber-kontrakten samt de indbyggede abonnenter sink og assign.

Lektion 1 af 412 trin

Udgivere og abonnenter er en gratis Swift Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Swift Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Swift Academy-kurset indeholder 4 lektioner i alt.

Velkommen

Combine er Apples reaktive rammeværk. Kernen består af Publishers (producerer værdier) og Subscribers (forbruger dem).

Publisher-protokollen

En `Publisher` udsender værdier over tid og bliver til sidst færdig eller mislykkes: ```swift publisher .sink { print("Received: \($0)") } ``` `Output`-typen er værditypen; `Failure` er fejltypen.

Subscriber: sink

```swift let nums = [1,2,3].publisher let cancel = nums.sink { print($0) } // 1, 2, 3 ```

Subscriber: assign

```swift class ViewModel { @Published var status = "" } let vm = ViewModel() statusPublisher .assign(to: &vm.$status) ```

AnyCancellable

Hvert abonnement returnerer `AnyCancellable`. Gem det for at holde abonnementet aktivt: ```swift var cancellables = Set() pub.sink { print($0) }.store(in: &cancellables) ```

Just Publisher

```swift Just(42).sink { print($0) } // emits once then completes ```

Notification Publisher

```swift NotificationCenter.default .publisher(for: UIApplication.didBecomeActiveNotification) .sink { _ in print("Active!") } .store(in: &cancellables) ```

Timer Publisher

```swift Timer.publish(every: 1, on: .main, in: .common) .autoconnect() .sink { date in print(date) } .store(in: &cancellables) ```

Fuldførelseshændelser

```swift pub.sink( receiveCompletion: { completion in switch completion { case .finished: print("Done") case .failure(let e): print("Error: \(e)") } }, receiveValue: { print($0) } ) ```

Backpressure

Combine understøtter backpressure – abonnenter kan anmode om et bestemt antal værdier. Efterspørgslen `.unlimited` er standarden for `sink`.

Hurtigt tjek

Hvilken type skal du gemme for at holde et Combine-abonnement aktivt?

Opsummering

Vigtigste pointer: • Publishers udsender værdier over tid; Subscribers modtager dem • `sink` modtager værdier og fuldførelse; `assign` binder til en egenskab • Gem `AnyCancellable` for at holde abonnementer aktive • Indbyggede publishers: `Just`, `Timer.publish`, NotificationCenter Næste: Operatorer.
Gratis at komme i gang

Lær Swift med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
122
Lektioner
409

Ofte stillede spørgsmål

Er lektionen “Udgivere og abonnenter” gratis?

Ja — alle 3 lektioner i læringssporet Swift Academy, inklusive “Udgivere og abonnenter”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Swift Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Udgivere og abonnenter”?

Forstå Publisher/Subscriber-kontrakten samt de indbyggede abonnenter sink og assign. Du øver dig i Swift Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Swift Academy?

Der kræves ingen tidligere erfaring. Swift Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Udgivere og abonnenter”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Swift Academy-lektion?

Ja. Alle Swift Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Udgivere og abonnenter
  2. Operatorer: map, filter, combineLatest
  3. PassthroughSubject og CurrentValueSubject
  4. Netværk med Combine og URLSession
← Tilbage til Swift Academy