当我使用RxSwift时,如何删除“addDisposableTo”

时间:2017-07-06 22:27:37

标签: swift rx-swift

当我使用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)

2 个答案:

答案 0 :(得分:1)

我在XCode中为订阅代码创建了一个代码片段,因此非常方便我不必每次都输入

我担心因为处理袋是一个属性,你绑定到订阅的对象,你可以节省很多锅炉板代码。

可能你可以写一个方便的包装但仍然值得吗?在我看来,XCode片段工作得很好

答案 1 :(得分:1)

正如Nimble指出的那样,你必须这样做;否则你肯定会泄漏内存。在工作中订阅/取消订阅的夫妇依赖于与本地Swift通知中心/ KVO观察员相同的原则:如果您打开"频道",您必须"关闭"它

这里的中间地点是使用NSObject-Rx(按Ash Furrow)阻止您在import RxSwift子类NSObject处的任何位置创建一个配置包:只需调用{ {1}}。