Bileşenlerin birbirlerinden haberdar olmalarını gerektirmeden, bileşenler arasındaki java 'yayınla-abone' stil iletişimi hakkında bilgi edinin. Olay veri yolu kullanarak farklı sınıflar arasında iletişim kurabiliyoruz. Ihtiyaç duyulan daha az kodlama ile kolayca. iOS'ta NSNotifications'ın da bunu yaptığını biliyorum. NSNotification, burada bir yedek değildir.Lütfen formu temsilci modelini birbirinden ayıralım. IOS'ta iyi bir çözüm olan ve sınıflar arası iletişim için EventBus için iyi bir çözüm.iOS'ta Olay Veriyolu eşdeğeri
cevap
Swift ile SwiftEventBus'u kullanabilirsiniz. sadece güzel wrapper around NSNotificationCenter ve DispatchQueue. Bir etkinliğe
Kayıt:
SwiftEventBus.onMainThread(target, name: "someEventName") { result in
// UI thread
// Do something when the event occurr
}
Tetik bir olay:
SwiftEventBus.post("someEventName")
Ve bunu özelleştirmek gerekirse, source codekısa, net ve kolay etmektir anlama.
Hey, ben kütüphanenin yaratıcısıyım, size yararlı bulduğunuz için teşekkür ederim :) şerefe – cesarferreira
tolo'a bakın.
İşlevsellik bir olay veriyoluna biraz benzer ve ayrılırken (iOS9'da olduğu gibi) kayıt dışı bırakmanız gerekmediğinden NSNotification üzerinde büyük bir avantajı vardır.
Bence sen o bire birçok olduğunu ve varsayılan olarak doğrudur ama böyle mesaj almak istiyoruz dan hangi nesne belirtebilir hakkında bunun için kullanım NSNotificationCenter
, ben sizin yorumunuzu yapabilirsiniz:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(someSelector:)
name:@"MyPersonalNotification"
object:someOtherObject];
yalnızca gönderiminde MyPersonalNotification
burada someSelector:
alırsınız. Bu, iletişimi bire bir yaptı.
Ayrıca Key-Value Observing API'u da kullanabilirsiniz ama ben şahsen biraz rahatsız oldum.
- 1. Veriyolu Hatası strsep() kullanma
- 2. Yükseltme :: Interprocess Paylaşılan Bellek Veriyolu Hatası
- 3. Veriyolu dökümü dosyasında kullanılan tablo alanlarını bulma
- 4. Veriyolu Hatası: Grunt-sass çalıştırırken 10 Hata
- 5. olay işleyicisinde jquery "this" bağlama sorunu (prototip içinde bindAsEventListener eşdeğeri)
- 6. NSMethodSignature & NSInvocation eşdeğeri eşdeğeri 2
- 7. Git ekle. Bana veri verir Veriyolu hatası (çekirdek ayrılmış)
- 8. Spark List'te itemChangeEffect eşdeğeri nedir?
- 9. Survfit eşdeğeri?
- 10. PyQt_PyObject eşdeğeri?
- 11. os.path eşdeğeri?
- 12. phpMyAdmin eşdeğeri?
- 13. PowerShell eşdeğeri?
- 14. makedepend eşdeğeri?
- 15. Haskell eşdeğeri?
- 16. CultureInfo.GetCultureInfo eşdeğeri?
- 17. MonoTouch.Dialog eşdeğeri?
- 18. IsFinite() eşdeğeri
- 19. SQLITE eşdeğeri?
- 20. StyleCop eşdeğeri?
- 21. GetWebResourceUrl eşdeğeri?
- 22. FileOutputStream eşdeğeri
- 23. CountDownLatch eşdeğeri
- 24. selenium.wait_for_condition eşdeğeri
- 25. Javascript + = eşdeğeri?
- 26. Kullanımdan kaldırılmış jQuery Değiştirme Olayı Eşdeğeri
- 27. Grafik API kullanarak Olay için Olay Ayarlama
- 28. Google Etiket Yöneticisi PHP API'sinde dataLayer.push eşdeğeri
- 29. olay ve
- 30. backbone.js Olay
Neden 'android' etiketi? –
NSNotificationCentre'ın aradığınız şey olmadığından emin misiniz? https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/index.html – Toby
Hayır. NSNotificationCentre bire çok iletişim kullanır. Bir seferde bire bir iletişime ihtiyacım var. –