观察RACSequence中的每个项目,在序列有新项目时更新观察结果

时间:2015-09-07 12:47:17

标签: reactive-cocoa racsequence

这是与an earlier question that asked about observing every item in a 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失效来实现此目的,但是在不添加任何额外状态的情况下执行此操作会很棒。什么是正确的方法?

1 个答案:

答案 0 :(得分:1)

我在@ justin-spahr-summers的旧文章中找到了答案:https://stackoverflow.com/a/19711002/63580

以下是针对后人的上述问题的具体版本:

<?php

/**
 * @file
 * Description of what this module (or file) is doing.
 */

/**
 * Implements hook_help().
 */
function yourmodule_help($path, $arg) {
  // or any other hook...
}