ios - 为什么我的 rx 订阅没有在我的 onNext 上触发?
问题描述
玩弄Rx Swift
我遇到了我subscription
没有触发的情况。
我有两个viewControllers
。第一个有一个label
应该subscriber
更新的,像这样:
func listen() {
print("In func")
let sec = storyboard?.instantiateViewController(withIdentifier: "secondvc") as! SecondViewController
sec.myRx.subscribe(onNext: {
print("SUBSCRIBED", $0)
self.rxLabel.text = $0
})
}
如果您转到第二个,则viewController
有一个触发onNext
事件的按钮。像这样:
var myRx = PublishSubject<String>()
@IBAction func myButton(_ sender: Any) {
myRx.asObserver().onNext("Hello")
}
因此,在我的脑海中,当myButton
在第二个中按下时,第viewController
一个label
中的第一个viewController
应该在返回时更新viewController
。但是据我所知,该功能已被触发,但subscription
根本没有被触发。
解决方案
请确保您订阅的内容与PublishSubject
您发布活动的内容相同。确认这一点的最简单方法是设置断点并检查地址。
推荐阅读
- java - 如何获得一个自然数序列,每个数字换行?
- compiler-errors - 嗨,我无法使这段代码工作,因为它说“并非所有代码路径都返回一个值”。我不确定什么在这里不起作用
- python - 使用两个 for 循环矢量化图像生成
- java - 设置 OSM 全屏的正确方法
- pdf - 如何使 pdf 或 docx 文件损坏?
- flutter - 如何在 Flutter 中拥有 2 种不同颜色的抽屉
- python - 命令行中的“SyntaxError:行继续字符后的意外字符”
- arrays - 如何用火花中的其他值替换数组中的项目?
- php - 嵌套语句的状态更新部分工作
- reactjs - reducer 中的函数影响了错误的状态属性。我知道为什么,但我不知道该怎么办