0Pricing
Swift Academy · Ders

PassthroughSubject ve CurrentValueSubject

Konuları, buyurgan kod ile Combine veri akışları arasında köprü olarak kullanın.

PassthroughSubject ve CurrentValueSubject, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.

Hoş geldiniz

Özneler hem yayıncı hem de abonedir. Buyruk temelli kod ile reaktif Combine işlem hatları arasında köprü kurarlar.

PassthroughSubject

```swift let subject = PassthroughSubject() subject.sink { print($0) }.store(in: &cancellables) subject.send("Hello") subject.send("World") // Hello, World ``` Geç katılan aboneler daha önce gönderilmiş değerleri alamaz.

CurrentValueSubject

```swift let subject = CurrentValueSubject(0) subject.sink { print($0) }.store(in: &cancellables) // prints 0 immediately subject.value = 1 // prints 1 subject.value = 2 // prints 2 ``` Geçerli değeri saklar ve yeni abonelere yeniden gönderir.

PassthroughSubject ve CurrentValueSubject Karşılaştırması

• `PassthroughSubject` — saklanan değer yoktur; geç katılan aboneler hiçbir şey göremez • `CurrentValueSubject` — en son değeri saklar; geç katılan aboneler bu değeri hemen alır

Tamamlanma Gönderme

```swift subject.send(completion: .finished) // or: subject.send(completion: .failure(MyError.bad)) ``` Tamamlanmadan sonra başka değer gönderilemez.

Yayıncı Olarak Kullanma

```swift let events: AnyPublisher = subject.eraseToAnyPublisher() // Expose only the Publisher interface, hide Subject ```

Temsilciden Köprü Kurma

```swift class LocationManager: NSObject, CLLocationManagerDelegate { let locationSubject = PassthroughSubject() func locationManager(_ m: CLLocationManager, didUpdateLocations l: [CLLocation]) { locationSubject.send(l.last!) } } ```

İş Parçacığı Güvenliği

Özneler varsayılan olarak iş parçacığı güvenli değildir. Değerleri tutarlı bir iş parçacığından gönderin veya geçiş yapmak için `receive(on:)` kullanın.

Öznelerle Sınama

```swift func testSearch() { let subject = PassthroughSubject() var results: [String] = [] subject.sink { results.append($0) }.store(in: &cancellables) subject.send("swift"); subject.send("ios") XCTAssertEqual(results, ["swift","ios"]) } ```

MVVM'de Combine

```swift class SearchViewModel: ObservableObject { let querySubject = CurrentValueSubject("") @Published var results: [String] = [] init() { querySubject .debounce(for: 0.3, scheduler: RunLoop.main) .flatMap { search($0) } .assign(to: &$results) } } ```

Hızlı Kontrol

Hangi Subject, geçerli değerini yeni abonelere yeniden gönderir?

Özet

Önemli çıkarımlar: • `PassthroughSubject` — saklanan değer yoktur, yeniden gönderim yapmaz • `CurrentValueSubject` — değeri saklar, geç katılan abonelere yeniden gönderir • `send(completion:)` akışı sona erdirir • `eraseToAnyPublisher()` Subject arayüzünü gizler • Özneler, buyruk temelli kod ile reaktif kod arasında köprü kurar Sıradaki: Combine ile Ağ İletişimi.

Sıkça Sorulan Sorular

“PassthroughSubject ve CurrentValueSubject” dersi ücretsiz mi?

Evet — “PassthroughSubject ve CurrentValueSubject” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.

“PassthroughSubject ve CurrentValueSubject” dersinde ne öğreneceğim?

Konuları, buyurgan kod ile Combine veri akışları arasında köprü olarak kullanın. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Swift Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“PassthroughSubject ve CurrentValueSubject” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Yayıncılar ve Aboneler
  2. İşleçler: map, filter, combineLatest
  3. PassthroughSubject ve CurrentValueSubject
  4. Combine ve URLSession ile Ağ İletişimi
← Swift Academy Sayfasına Dön