【发布时间】:2016-05-03 02:04:39
【问题描述】:
如何使用 RxSwift 实现事件发射器? (一个可以发出被订阅它的其他对象消费的数据的对象。)
在浏览了 Rx 文档和示例之后,我觉得自己像个彻头彻尾的白痴,仍然对如何手动将事件从 Observer 发送到 Observable 感到非常困惑。我的理解是我们有一些 Observable 可以向订阅该 Observable 的所有观察者发出带有数据的事件。但是,我对如何在 Swift 中实际实现这一点的想法为零。
这是我正在尝试实现的示例:
class VendingMachine {
let dispenser = Observable<Drink>
// Notify all subscribed Observers that this machine dispensed a drink.
func dispenseDrink(item: Drink) {
dispenser.onNext(item)
}
}
还有第二个文件:
class MachineReporter: Observer {
let dispenser = VendingMachine().dispenser
init() {
dispenser.subscribe(self)
}
onNext { drink in
print("Vending machine dispensed a drink: \(drink)"
}
}
我的大脑被炸了。我现在只是要切换到像 EmitterKit 这样的专业库,因为我显然误解了它的工作原理。
但我需要弄清楚 Rx 是如何工作的,否则我会发疯的。救命!
【问题讨论】: