深入理解RACSignal相关operation

- (RACSignal *)merge:(RACSignal *)signal {
    return [RACSignal
            merge:@[ self, signal ]];      //(1)
}
+ (RACSignal *)merge:(id<NSFastEnumeration>)signals {
    NSMutableArray *copiedSignals = [[NSMutableArray alloc] init];
    for (RACSignal *signal in signals) {
        [copiedSignals addObject:signal];     //(2)
    }
    return [[RACSignal
              createSignal:^ RACDisposable * (id<RACSubscriber> subscriber) {   //(3)
                  for (RACSignal *signal in copiedSignals) {
                      [subscriber sendNext:signal];             //(4)
                  }
                  [subscriber sendCompleted];
                  return nil;
              }]flatten];                 //(5)
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容