Dividindo um sinal RACS para eliminar o estado

Estou usando o ReactiveCocoa para atualizar umUILabel enquanto umUIProgressView conta abaixo:

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...
    }];

Isso funciona bem, mas eu não estou particularmente feliz com ocount variável ou com a leitura do valor deself.progressView.progress a fim de diminuí-lo.

Eu sinto que deveria ser capaz de cuspir o sinal e ligar as propriedades diretamente usando oRAC macro. Algo como:

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

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

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

o...s revelar onde estou preso. Eu não consigo entender como compor oRACSignal de tal forma que eu não precise confiar em uma variável de estado.

Além disso, não tenho certeza onde / como injetar// Move along... efeito colateral que eu preciso quando o fluxo é concluído.

Tenho certeza de que ambos são simples o suficiente uma vez que você está pensando do jeito certo, mas qualquer ajuda seria muito apreciada.

questionAnswers(1)

yourAnswerToTheQuestion