【发布时间】:2015-09-23 12:15:31
【问题描述】:
我正在尝试熟悉 Reactive Cocoa,但在组合信号时遇到了问题。
我知道 combineLatest 或 zip 只会在所有组合信号至少发送一个值时发送一个值。但是如果任何一个信号发送一个值,是否可以组合信号并获得一个值?
我有几个信号,我想在发送一个值时执行相同的代码,而不管其他信号是否都发送了一个值。我是以错误的方式接近这个吗?或者这可能吗?
谢谢
【问题讨论】:
标签: ios reactive-cocoa
我正在尝试熟悉 Reactive Cocoa,但在组合信号时遇到了问题。
我知道 combineLatest 或 zip 只会在所有组合信号至少发送一个值时发送一个值。但是如果任何一个信号发送一个值,是否可以组合信号并获得一个值?
我有几个信号,我想在发送一个值时执行相同的代码,而不管其他信号是否都发送了一个值。我是以错误的方式接近这个吗?或者这可能吗?
谢谢
【问题讨论】:
标签: ios reactive-cocoa
这个怎么样:
RACSignal* a = ...
RACSignal* b = ...
RACSignal* combined = [[RACSignal
combineLatest:@[[a startWith:nil], [b startWith:nil]]
skip:1];
这里的startWith: 确保所有信号在开始时触发一次,生成一个组合的[nil, nil] 元组(skip:1 将跳过该元组)。然后,如果例如a 发送@"foo",combined 将发送[@"foo", nil] 的元组。
【讨论】: