这是一个与之前询问观察 RACSequence 中的每个项目的问题类似的问题——正确答案类似于:
RACSignal *valid = [[RACSignal combineLatest:
[self.viewModels map:^id(ViewModel *viewModel) {
return RACObserve(viewModel, state);
}]
]
map:^(RACTuple *states) {
return @([states.rac_sequence all:^BOOL(NSNumber *state) {
return state.unsignedIntegerValue == Completed;
}]);
}
];
我对此的变化是,我还想处理 ViewModel 实例也从序列中添加/删除的情况。我可以通过使存储在实例变量或属性中的 RACDisposable 无效来做到这一点,但如果不添加任何额外的状态,这样做会很棒。这样做的正确方法是什么?