我应该在 RxSwift 中手动处理 UIButton 实例吗?
should I manually dispose a UIButton instance in RxSwift?
我是 RxSwift 的新手,在阅读有关它的博客时感到困惑。
这是在自定义视图中创建按钮的正确方法吗?
let disposeBag = DisposeBag()
lazy var followButton: UIButton = {
let btn = UIButton(frame: .zero)
btn.rx.tap.subscribe(onNext: { [weak self] in
// do something when the button is tapped
}).disposed(by: disposeBag) // this line
return btn
}()
是否只要按钮被订阅(观察到)就必须使用disposed(by: DisposeBag)
?
更新
lazy var followButton: UIButton = {
let btn = UIButton(frame: .zero)
btn.rx.tap.subscribe(onNext: { [weak self] in
// do something when the button is tapped
})
// a warning says
// Result of call to 'subscribe(onNext:onError:onCompleted:onDisposed:)' is unused
return btn
}()
警告似乎暗示 api 旨在连接另一种方法,如 disposed
。
如果我们不需要disposed
,这里应该用什么方法?
或者只是 _ = btn.rx.tap.subscribe...
?
当按钮被取消时,UIButton 的点击将完成,因此不需要明确处置(除非你想在按钮取消之前取消它。)将订阅添加到处置包当然没有错,但这不是必要的。
_ = btn.rx.tap
.subscribe(onNext: {
// do something when the button is tapped.
})
上面是你不想要disposeBag的处理方法
我是 RxSwift 的新手,在阅读有关它的博客时感到困惑。
这是在自定义视图中创建按钮的正确方法吗?
let disposeBag = DisposeBag()
lazy var followButton: UIButton = {
let btn = UIButton(frame: .zero)
btn.rx.tap.subscribe(onNext: { [weak self] in
// do something when the button is tapped
}).disposed(by: disposeBag) // this line
return btn
}()
是否只要按钮被订阅(观察到)就必须使用disposed(by: DisposeBag)
?
更新
lazy var followButton: UIButton = {
let btn = UIButton(frame: .zero)
btn.rx.tap.subscribe(onNext: { [weak self] in
// do something when the button is tapped
})
// a warning says
// Result of call to 'subscribe(onNext:onError:onCompleted:onDisposed:)' is unused
return btn
}()
警告似乎暗示 api 旨在连接另一种方法,如 disposed
。
如果我们不需要disposed
,这里应该用什么方法?
或者只是 _ = btn.rx.tap.subscribe...
?
当按钮被取消时,UIButton 的点击将完成,因此不需要明确处置(除非你想在按钮取消之前取消它。)将订阅添加到处置包当然没有错,但这不是必要的。
_ = btn.rx.tap
.subscribe(onNext: {
// do something when the button is tapped.
})
上面是你不想要disposeBag的处理方法