gpt4 book ai didi

ios - RxSwift Textfield debounce subscribe 没有调用

转载 作者:行者123 更新时间:2023-11-28 10:03:58 24 4
gpt4 key购买 nike

用户停止输入 0.3 秒后的变化应该显示在标签中,但订阅 onNext 没有调用

override func viewDidLoad() {
...
let disposeBag = DisposeBag()
textfield.rx.text.orEmpty
.debounce(.milliseconds(300), scheduler: MainScheduler.instance)
.subscribe(onNext: { [unowned self] (text) in
self.label.text = text
}).disposed(by: disposebag)
...
}

使用 Swift 5

pod 'RxSwift', '~> 5'
pod 'RxCocoa', '~> 5'

最佳答案

解决方案是在 viewDidLoad() 范围之外声明 disposebag:

let disposebag = DisposeBag()

override func viewDidLoad() {
super.viewDidLoad()

...

textfield.rx.text.orEmpty
.debounce(.milliseconds(1000), scheduler: MainScheduler.instance)
.subscribe(onNext: { [unowned self] (text) in
self.label.text = text
print("Yo")
}).disposed(by: disposebag)
}

由于在您的代码中,disposebag 存在于 viewDidLoad() 范围内,一旦此方法结束,disposebag 将被释放,这取消订阅。

关于ios - RxSwift Textfield debounce subscribe 没有调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56833473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com