【问题标题】:Combining RAC Signals and receive all values组合 RAC 信号并接收所有值
【发布时间】:2015-09-23 12:15:31
【问题描述】:

我正在尝试熟悉 Reactive Cocoa,但在组合信号时遇到了问题。

我知道 combineLatest 或 zip 只会在所有组合信号至少发送一个值时发送一个值。但是如果任何一个信号发送一个值,是否可以组合信号并获得一个值?

我有几个信号,我想在发送一个值时执行相同的代码,而不管其他信号是否都发送了一个值。我是以错误的方式接近这个吗?或者这可能吗?

谢谢

【问题讨论】:

    标签: ios reactive-cocoa


    【解决方案1】:

    这个怎么样:

    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] 的元组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-04
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 2020-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多