Aufteilen eines RACSignals, um den Status zu beseitigen
Ich verwende ReactiveCocoa, um a zu aktualisierenUILabel
während aUIProgressView
zählt herunter:
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...
}];
Das funktioniert gut genug, aber ich bin auch nicht besonders zufrieden mit demcount
Variable oder mit dem Lesen des Wertes vonself.progressView.progress
um es zu dekrementieren.
Ich habe das Gefühl, ich sollte in der Lage sein, das Signal zu spucken und die Eigenschaften direkt mit dem zu bindenRAC
Makro. So etwas wie:
RACSignal *baseSignal = [[RACSignal interval:0.05 onScheduler:[RACScheduler mainThreadScheduler]]
take: percentRemaining]
RAC(self, countLabel.text) = [baseSignal
map: ...
...
RAC(self, progressView.progress) = [baseSignal
map: ...
...
Das...
s verraten, wo ich stecke. Ich kann mich nicht so recht vorstellen, wie man das komponiertRACSignal
so dass ich mich nicht auf eine Zustandsvariable verlassen muss.
Außerdem bin ich mir nicht sicher, wo / wie ich das spritzen soll// Move along...
Nebeneffekt brauche ich, wenn der Stream abgeschlossen ist.
Ich bin mir sicher, dass beide einfach genug sind, wenn Sie einmal richtig überlegt haben, aber jede Hilfe wäre sehr dankbar.