Czuję, że rozumiem wszystkie podstawowe składniki ReactiveCocoa (koncepcyjnie), przez zrozumienie, jak połączyć wszystkie kawałki razem, jest jeszcze trochę mylące.Dlaczego SignalProducer nie zwraca sygnału?
Na przykład, po przeczytaniu o Signal, w pełni oczekuje SignalProducer po prostu mieć metodę jeden start(), która zwracana jest sygnał, który należałoby użyć tak:
mySignalProducer.start().observe(myObserver)
Zamiast tego trzeba zdać obserwator na start(), a SignalProducer rozmowy obserwować() dla Ciebie:
mySignalProducer.start(myObserver)
oznacza to, że interfejs SignalProducer jest znacznie większe (bardziej do zrozumienia), ponieważ wszystkie wariacje na obserwacji() muszą być duplikowane przy starcie() (np. startNext(), etc).
Myślę, że są dwie możliwości tutaj:
- Istnieją powody techniczne dlaczego start() nie można po prostu wrócić sygnał
- ja rozumieją SignalProducer koncepcyjnie, co prowadzi do wonky oczekiwań jego interfejs
Jeśli chodzi o 1, przypuszczam, że ma to coś wspólnego z zarządzaniem pamięcią i dyskami jednorazowymi, których jeszcze nie rozumiem.
Bardziej martwię się, że tak jest 2. Wewnętrznie, moje rozumienie SignalProducer jest w zasadzie odwzorowywane do koncepcji fabryce, np .:
mySignalFactory.createSignal().observe(myObserver)
dlatego jestem zaskoczony, że nie znaleźć start(), która zwraca sygnał.
Byłbym niezwykle wdzięczny, gdyby społeczność mogła rzucić trochę światła tutaj.
Dzięki!