我如何在使用 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)