0Pricing
Swift Academy · Ders

Combine'da @Published ve Gözlemleme

@Published'in perde arkasında nasıl çalıştığını ve değişiklikleri Combine yayıncıları üzerinden nasıl yaydığını öğrenin.

Combine'da @Published ve Gözlemleme, 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

`@Published`, Combine çatısından gelen ve özellik her değiştiğinde bir yayıncı üzerinden yeni bir değer yayımlayan bir özellik sarmalayıcısıdır.

@Published Temelleri

```swift import Combine class Counter: ObservableObject { @Published var count = 0 } let c = Counter() let cancel = c.$count.sink { print("Count: \($0)") } c.count += 1 // "Count: 1" c.count += 1 // "Count: 2" ```

ObservableObject Protokolü

```swift class ViewModel: ObservableObject { @Published var title = "Initial" @Published var items: [String] = [] } ``` `ObservableObject` protokolüne uyan her sınıf, ücretsiz olarak bir `objectWillChange` yayıncısı edinir.

objectWillChange Yayıncısı

```swift class VM: ObservableObject { @Published var name = "" } let vm = VM() let cancel = vm.objectWillChange.sink { print("Will change") } vm.name = "Alice" // "Will change" printed before assignment ```

SwiftUI @StateObject ile @Published

```swift @StateObject var vm = ViewModel() // In View body: Text(vm.title) // Re-renders when vm.title changes ``` `@StateObject`, ViewModel'ın sahibi olur; `@ObservedObject` ise dışarıdan sahip olunan bir ViewModel'ı gözlemler.

@Published Kaynaklı Yayıncıları Zincirleme

```swift class Search: ObservableObject { @Published var query = "" @Published var results: [String] = [] private var cancellables = Set() init() { $query .debounce(for: 0.3, scheduler: RunLoop.main) .sink { [weak self] q in self?.search(q) } .store(in: &cancellables) } } ```

@Published Atamadan Önce Tetiklenir

`objectWillChange`, yeni değer depolanmadan *önce* tetiklenir: ```swift vm.objectWillChange.sink { _ in print("will change") } $count.sink { n in print("is \(n)") } // Order: "will change" then "is 1" ```

Abonelikleri Saklama

```swift var cancellables = Set() c.$count .sink { print("\($0)") } .store(in: &cancellables) // cancellables keeps subscription alive ```

@Published Sınırlamaları

• Yalnızca sınıflarda (başvuru türlerinde) • `let` sabitlerinde kullanılamaz • Açık izolasyon olmadan aktör sınırları arasında çalışmaz • Değer, atama tamamlanmadan *önce* yayımlanır (`willSet` semantiği)

Gözlem Makrosu (Swift 5.9+)

Swift 5.9, daha basit bir alternatif olarak `@Observable` özelliğini sunar: ```swift @Observable class Counter { var count = 0 } // No Combine import needed; SwiftUI auto-subscribes ```

Hızlı Kontrol

`@Published` değerini ne zaman yayımlar — özellik ayarlanmadan önce mi, sonra mı?

Özet

Temel çıkarımlar: • `@Published var x`, `$x` değerini bir `Publisher` olarak dışa sunar • `ObservableObject`, ücretsiz bir `objectWillChange` yayıncısı edinir • Yeni değer depolanmadan önce tetiklenir (`willSet`) • Abonelikleri `Set` içinde saklayın • Swift 5.9: `@Observable`, `@Published` gereksinimlerinin çoğunun yerini alır Sonraki konu: özellik sarmalayıcılarını birleştirme.

Sıkça Sorulan Sorular

“Combine'da @Published ve Gözlemleme” dersi ücretsiz mi?

Evet — “Combine'da @Published ve Gözlemleme” 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.

“Combine'da @Published ve Gözlemleme” dersinde ne öğreneceğim?

@Published'in perde arkasında nasıl çalıştığını ve değişiklikleri Combine yayıncıları üzerinden nasıl yaydığını öğrenin. 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.

“Combine'da @Published ve Gözlemleme” 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. Özel Özellik Sarmalayıcı Oluşturma
  2. $binding ile Yansıtılan Değerler
  3. Combine'da @Published ve Gözlemleme
  4. Birden Çok Özellik Sarmalayıcısını Birleştirme
← Swift Academy Sayfasına Dön