SwiftUI Academy · Lezione

Publisher e subscriber

Comprenda il flusso fondamentale di Combine.

Lezione 1 di 413 passaggi

Publisher e subscriber è una lezione SwiftUI Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento SwiftUI Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso SwiftUI Academy include 4 lezioni in totale.

Conosciamo Combine

Combine è il framework di Apple per gestire valori che arrivano nel tempo, come tocchi, timer o risposte di rete. 🌊

Valori nel tempo

Invece di richiedere i dati una sola volta, descrive un flusso di valori e reagisce ogni volta che ne arriva uno nuovo, subito o in seguito.

Cosa fa un Publisher

Un Publisher è la sorgente. Emette valori verso i downstream e segnala quando termina o si verifica un errore.

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

Output ed errore

Ogni publisher dichiara due tipi: il proprio Output (i valori che invia) e il proprio Failure (l’errore che potrebbe generare).

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

Cosa fa un Subscriber

Un Subscriber si collega a un publisher, riceve ogni valore quando arriva e decide come gestirlo.

Connessione con sink

Il subscriber sink è il più semplice: gli passa una closure che viene eseguita per ogni valore ricevuto.

publisher.sink { value in
    print(value)
}

Gestire il completamento

Un sink più completo accetta due closure: una per il completamento (termine o errore) e una per ogni valore.

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

Salvare la sottoscrizione

La sottoscrizione restituisce un cancellable. Lo mantenga in vita, altrimenti il flusso viene interrotto immediatamente.

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

Just ed Empty

Just emette un valore e poi termina. Empty termina senza emettere alcun valore. Entrambi sono elementi costitutivi utili.

let one = Just("hello")

I Subject inviano valori

Un PassthroughSubject consente di inviare manualmente i valori, ed è perfetto per inoltrare eventi sotto il Suo controllo.

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

Il flusso pull e push

Il subscriber segnala la propria richiesta, il publisher invia i valori e il completamento chiude correttamente la relazione.

Verifica rapida

Ha collegato una closure a un publisher, ma non è stato stampato nulla. Che cosa potrebbe essere andato storto?

Riepilogo: il trio di Combine

Ha conosciuto i tre elementi: un publisher emette valori, un subscriber li riceve e un cancellable conservato mantiene attivo il collegamento. 🎉

Gratis per iniziare

Impara Swift con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Publisher e subscriber» è gratuita?

Sì — il testo completo di «Publisher e subscriber» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso SwiftUI Academy, passa a CoddyKit PRO. Il corso SwiftUI Academy include 4 lezioni in totale.

Cosa imparerò in «Publisher e subscriber»?

Comprenda il flusso fondamentale di Combine. Eserciti SwiftUI Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare SwiftUI Academy?

Non è richiesta alcuna esperienza precedente. SwiftUI Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Publisher e subscriber»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione SwiftUI Academy?

Sì. Ogni lezione SwiftUI Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Publisher e subscriber
  2. Trasformare con map e filter
  3. Debounce per la ricerca in tempo reale
  4. Integrare Combine in SwiftUI
← Torna a SwiftUI Academy