如何触发任何多个信号生产者的块?

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

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 } 

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

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

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

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

Interesting Posts