Dzielenie sygnału RACSignal w celu wyeliminowania stanu

Używam ReactiveCocoa do aktualizacji aUILabel aUIProgressView odlicza:

NSInteger percentRemaining = ...;
self.progressView.progress = percentRemaining / 100.0;

__block NSInteger count = [self.count];

[[[RACSignal interval:0.05 onScheduler:[RACScheduler mainThreadScheduler]]
    take: percentRemaining]
    subscribeNext:^(id x) {
        count++;
        self.countLabel.text = [NSString stringWithFormat:@"%d", count];
        self.progressView.progress = self.progressView.progress - 0.01;
    } completed:^{
        // Move along...
    }];

To działa dobrze, ale nie jestem szczególnie zadowolony z obucount zmienna lub z odczytem wartościself.progressView.progress w celu zmniejszenia tego.

Czuję, że powinienem być w stanie pluć sygnałem i wiązać właściwości bezpośrednio za pomocąRAC makro. Coś jak:

RACSignal *baseSignal = [[RACSignal interval:0.05 onScheduler:[RACScheduler mainThreadScheduler]]
                            take: percentRemaining]

RAC(self, countLabel.text) = [baseSignal
                                  map: ...
                                  ...

RAC(self, progressView.progress) = [baseSignal
                                        map: ...
                                        ...

The...s ujawniają, gdzie utknąłem. Nie do końca rozumiem, jak komponowaćRACSignal tak, że nie muszę polegać na zmiennej stanu.

Dodatkowo nie jestem pewien, gdzie / jak wstrzyknąć// Move along... Efekt uboczny, którego potrzebuję po zakończeniu strumienia.

Jestem pewien, że oba są wystarczająco proste, gdy myślisz o właściwej drodze, ale każda pomoc byłaby naprawdę doceniana.

questionAnswers(1)

yourAnswerToTheQuestion