当一组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
}
答案 0 :(得分:0)
您可以将代码块保存为变量,然后只需将该变量分配给property1.producer.startWithValues
。
答案 1 :(得分:0)
您可以使用combineLatest
创建包含两个值的新属性:
let prop = property1.combineLatest(with: property2)
prop.producer.startWithValues { (val1, val2) in
// do stuff here
}
如果任一值发生变化,则会触发该块。