【发布时间】:2017-05-03 02:27:12
【问题描述】:
我正在尝试定义一个 Rxswift 变量数组,它具有不同的类型(Int、String、Bool、String?等...)
所以从技术上讲,我想要这样的东西,
var intVariable = Variable<Int>(10)
var stringVariable = Variable<String>("Hello, RxSwift")
let genericArray = [intVariable, stringVariable]
原因是,我有一个我想订阅的变量列表。
但是,我可以单独订阅变量,例如 intVariable.asObservable().subscribe、stringVariable.asObservable().subscribe 等。
但如果它在一个数组中,我可以遍历所有元素并订阅它。
Rxswift 变量定义为public final class Variable<Element>
P.S 我尝试过类型擦除,但没有运气。对此的任何帮助将不胜感激!
【问题讨论】:
-
我怀疑这可能吗?什么情况下需要订阅不同类型的变量?
-
我建议订阅一次合并的 observable 序列,而不是创建一个循环来订阅每个单独的 observable。由于您有不同类型的变量,您可以执行此处所述的解决方法stackoverflow.com/questions/39050059/…
-
感谢@Nimble,非常适合我的情况。
标签: arrays swift generics rx-swift