Publisher e subscriber
Comprenda il flusso fondamentale di Combine.
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].publisherOutput 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: NeverCosa 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. 🎉
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
- Publisher e subscriber
- Trasformare con map e filter
- Debounce per la ricerca in tempo reale
- Integrare Combine in SwiftUI