我如何在使用 RxSwift 时删除“addDisposableTo”
How can i remove “addDisposableTo” when i used RxSwift
当我使用 RxSwift 时,我必须写很多很多 addDisposableTo,我该如何删除它?
usernameTextField.rx.text.orEmpty
.bindTo(viewModel.username)
.addDisposableTo(disposeBag)
passwordTextField.rx.text.orEmpty
.bindTo(viewModel.password)
.addDisposableTo(disposeBag)
repeatPasswordTextField.rx.text.orEmpty
.bindTo(viewModel.repeatPassword)
.addDisposableTo(disposeBag)
我在 XCode 中为订阅代码创建了一个代码片段,所以它非常方便,我不必每次都输入它
恐怕因为处置包是一个 属性 绑定到正在订阅的对象,所以就样板代码而言,您可以节省的不多。
也许你可以写一个方便的包装器,但它仍然值得吗?在我看来 XCode 片段效果很好
正如Nimble指出的那样,你必须这样做;否则你肯定会泄漏内存。 subscribe/unsubscribe这对夫妇在工作依赖于与本地Swift通知Center/KVO观察者相同的原则:如果你打开一个"channel",你必须"close"它。
这里的中间立场是使用 NSObject-Rx (by Ash Furrow) 来防止您在 NSObject
子类中 import RxSwift
的任何地方创建处理包:只需调用 .disposed(by: rx.disposeBag)
。
当我使用 RxSwift 时,我必须写很多很多 addDisposableTo,我该如何删除它?
usernameTextField.rx.text.orEmpty
.bindTo(viewModel.username)
.addDisposableTo(disposeBag)
passwordTextField.rx.text.orEmpty
.bindTo(viewModel.password)
.addDisposableTo(disposeBag)
repeatPasswordTextField.rx.text.orEmpty
.bindTo(viewModel.repeatPassword)
.addDisposableTo(disposeBag)
我在 XCode 中为订阅代码创建了一个代码片段,所以它非常方便,我不必每次都输入它
恐怕因为处置包是一个 属性 绑定到正在订阅的对象,所以就样板代码而言,您可以节省的不多。
也许你可以写一个方便的包装器,但它仍然值得吗?在我看来 XCode 片段效果很好
正如Nimble指出的那样,你必须这样做;否则你肯定会泄漏内存。 subscribe/unsubscribe这对夫妇在工作依赖于与本地Swift通知Center/KVO观察者相同的原则:如果你打开一个"channel",你必须"close"它。
这里的中间立场是使用 NSObject-Rx (by Ash Furrow) 来防止您在 NSObject
子类中 import RxSwift
的任何地方创建处理包:只需调用 .disposed(by: rx.disposeBag)
。