Ich habe eine Methode auf ParentViewModel, die eine RACSequence von ViewModel-Objekten zurückgibt, wie folgt:
- (RACSequence *) viewModels
{
return [self.models.rac_sequence map:^id(Model *model) {
return [[ViewModel alloc] initWithModel: model];
}];
}
Jedes der ViewModels hat eine status Eigenschaft, die ein Enum ist und 3 Zustände hat: NotStarted, InProgress und Completed. Wenn alle ViewModels in meiner Sequenz den Zustand Completed haben, weiß ich, dass ParentViewModel gültig ist. Ich habe ein validSignal auf dem ParentViewModel, aus dem ich ableiten möchte, dass es gültig ist, basierend auf der viewModels-Sequenz. Im Moment habe ich diesen Code:
BOOL valid = [[self viewModels] all:^BOOL(ViewModel *vm) {
return vm.state == Completed;
}];
Das gibt mir einen Indikator, ob alle ViewModels in der Sequenz gültig sind. Wie kann ich das dann in ein RACSignal umwandeln, das sich jedes Mal aktualisiert, wenn sich die status Eigenschaft eines der ViewModels ändert?