0

每当一组 SignalProducers 发生变化时,如何触发一个代码块?换句话说,我如何摆脱我当前的冗余代码:

property1.producer.startWithValues { (value) in 
    // do stuff with property1.value and property2.value
}

property2.producer.startWithValues { (value) in 
    // do the same stuff with property1.value and property2.value
}
4

2 回答 2

0

您可以将代码块保存为变量,然后只需将该变量分配给property1.producer.startWithValues.

于 2017-09-22T20:55:00.077 回答
0

您可以使用combineLatest创建一个包含两个值的新属性:

let prop = property1.combineLatest(with: property2)
prop.producer.startWithValues { (val1, val2) in
    // do stuff here
}

如果任一值发生变化,将触发块。

于 2017-09-23T03:18:27.780 回答