Разделение 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]
subscribeNext:^(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...
побочный эффект мне нужен, когда поток завершается.
уверен, что оба достаточно просты, как только выМы думаем, что правильно, но любая помощь будет очень признательна.