如何从多个信号生成器中的任何一个触发块?
How to trigger block from any of multiple signal producers?
如何在一组 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
}
您可以将代码块保存为一个变量,然后您只需将该变量赋值给 property1.producer.startWithValues
。
您可以使用 combineLatest
创建一个包含两个值的新 属性:
let prop = property1.combineLatest(with: property2)
prop.producer.startWithValues { (val1, val2) in
// do stuff here
}
如果任何一个值发生变化,就会触发该块。
如何在一组 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
}
您可以将代码块保存为一个变量,然后您只需将该变量赋值给 property1.producer.startWithValues
。
您可以使用 combineLatest
创建一个包含两个值的新 属性:
let prop = property1.combineLatest(with: property2)
prop.producer.startWithValues { (val1, val2) in
// do stuff here
}
如果任何一个值发生变化,就会触发该块。