如何触发任何多个信号生产者的块?
每当一组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
。