【发布时间】:2014-02-13 11:24:50
【问题描述】:
给定一个返回对象数组的方法,如何创建一个仅在使用该方法时填充该方法的结果的序列?
- (NSArray *) methodA { ... }
- (RACSequence *) methodB {
return [self methodA].rac_sequence;
}
我想知道是否有可能避免执行方法A,除非实际使用了序列,但仍然从方法B返回序列以传递,以防我决定使用它。
更新
我设法通过使用信号而不是序列来实现我想要的行为。
- (RACSignal *)methodB {
RACSignal *racSignal = [RACSignal defer:^RACSignal * {
return [self methodA].rac_sequence.signal;
}];
return racSignal;
}
现在 methodA 仅在订阅信号时调用。为什么没有类似的延迟序列概念?
【问题讨论】:
标签: reactive-cocoa