次のように、ViewModel オブジェクトの RACSequence を返す ParentViewModel のメソッドがあります。
- (RACSequence *) viewModels
{
return [self.models.rac_sequence map:^id(Model *model) {
return [[ViewModel alloc] initWithModel: model];
}];
}
各 ViewModel には、列挙型である状態プロパティがあり、NotStarted、InProgress、および Completed の 3 つの状態があります。シーケンス内のすべての ViewModel の状態が Completed になると、ParentViewModel が有効であることがわかります。ViewModels シーケンスから有効な事実を導き出したい ParentViewModel に validSignal があります。現時点では、次のコードがあります。
BOOL valid = [[self viewModels] all:^BOOL(ViewModel *vm) {
return vm.state == Completed;
}];
これにより、シーケンス内のすべての ViewModel が有効かどうかがわかります。これを、ViewModel のいずれかの状態プロパティが変更されるたびに更新される RACSignal に変換するにはどうすればよいでしょうか?