Dividiendo una señal RAC para eliminar el estado

Estoy usando ReactiveCocoa para actualizar unUILabel mientras que unUIProgressView cuenta regresiva

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

Esto funciona bastante bien, pero no estoy particularmente contento con elcount variable o con la lectura del valor deself.progressView.progress para decrementarlo.

Siento que debería poder escupir la señal y unir las propiedades directamente usando elRAC 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: ...
                                        ...

los...s revelar donde estoy atrapado. No puedo entender cómo componer elRACSignal de tal manera que no necesito confiar en una variable de estado.

Además, no estoy seguro de dónde / cómo inyectar el// Move along... efecto secundario que necesito cuando la secuencia se completa.

Estoy seguro de que ambos son lo suficientemente simples una vez que estás pensando en la forma correcta, pero cualquier ayuda sería realmente apreciada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta