İçeriğe geç

NotificationCenter Publisher kullanımı

Merhabalar bu yazımda Combine ile NotificationCenter üzerinden yayınlama işlemlerinin nasıl gerçekleştirebileceğinizi göstereceğim.

NotificationCenter ile observe işlemleri gerçekleştirebiliyoruz. Combine ile birlikte observe işlemlerini UI nesneleri üzerinde tetiklenme işlemlerini direkt olarak delegate kullanmadan publish edip dinleyebiliyoruz. Buda bize gayet başarılı, temiz bir yapı oluşturmamıza olanak sağlıyor.

Aşağıda yazdığım örneklere göz atalım.

Burada NotificationCenter ile publish işlemini görüyorsunuz. Örnekte UISearchField üzerinde yazma işleminde sürekli olarak .textDidChangeNotification gerçekleştiğinde dinleme yapıp, aksiyonu gerçekleştiren bir blok mevcut.

Publisherimizi .map ile gönderdiğimiz değeri alıp, .debounce (.throttle, .delay vs gibi zaman fonksiyonlarıda mevcut) zaman fonksiyonu ile yazma aksiyonunun aralarına 0.5 saniye sonra tepki vermesini sağlıyoruz. Daha sonrasında .sink ile datayı okuyup, sonuçlandırılacak aksiyonumuzu yazıyoruz.

Bu örnektede çoğu uygulamada ihtiyaç kullandığımız keyboard tetiklenme aksiyonu sonrası yükseklik elde edeceğiz. Bunun için keyboard show ve hide aksiyonları için iki adet publisher kullanacağız. Bunlardan gelecek veri tipi aynı olduğu için tek subscribe üzerinde merge yaparak sonucu edebiliriz.

UI elementleri üzerinden direkt olarak publish işlemi gerçekleştirebiliyoruz.

Burada helloLabel adlı UILabel nesnemizin .text değeri değiştiği zaman .sink içerisi tetiklenmiş olur.

 

Tarih:Combine

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

© 2019 Kenan Atmaca