【发布时间】:2015-10-27 22:15:02
【问题描述】:
假设我有两个信号
textField1Signal
|> map { value in
return value.lowercaseString
}
|> on (
next: { value in
println("textField1 changed to \(value)");
}
)
textField2Signal
|> map { value in
return value.lowercaseString
}
|> on (
next: { value in
println("textField2 changed to \(value)");
}
)
我想要实现的是这样的:
(textField1Signal & textField2Signal)
|> map { value in
return value.lowercaseString
}
|> on (
next: { value in
println("one of the textFields changed to \(value)");
}
)
关键是我有几个信号,我想以相同的方式处理所有信号。 combineLatest: 在这种情况下不起作用,因为首先当只有一个信号触发时它不会被触发,其次我会从两个文本字段中获取值并且不知道哪个实际导致了调用。
【问题讨论】:
-
好像你在找
merge运营商 -
你能举个例子吗?
-
最新 RAC 中似乎没有
merge运算符 - 您需要先创建SignalProducer的SignalProducers,然后将它们合并查看flatten(,Merge)运算符。我今天不在我的 Mac 后面 - 所以无法编写经过测试的答案,但这里有一些关于如何做到这一点的指示:github.com/ReactiveCocoa/ReactiveCocoa/issues/1929
标签: ios signals reactive-cocoa frp reactive-cocoa-3