Разделение RACSignal для устранения состояния

Я использую ReactiveCocoa для обновленияUILabel покаUIProgressView обратный отсчет:

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

__block NSInteger count = [self.count];

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

Это работает достаточно хорошо, но я не особенно доволенcount переменная или с чтением значенияself.progressView.progress чтобы уменьшить его.

Я чувствую, что должен уметь сплевывать сигнал и связывать свойства напрямую, используяRAC макро. Что-то вроде:

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

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

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

...покажи, где я застрял. Я не могу понять, как сочинятьRACSignal так что мне не нужно полагаться на переменную состояния.

Кроме того, я не уверен, где / как вводить// Move along... побочный эффект мне нужен, когда поток завершается.

Я уверен, что оба достаточно просты, если вы думаете, правильный путь, но любая помощь будет очень признательна.

Ответы на вопрос(1)

Ваш ответ на вопрос