RxSwift绑定操作保留循环

问题描述 投票:0回答:1

我是rxswift框架的新手。我在下面编写了一个代码,我不确定。是否有任何保留周期?我必须使用弱自我引用吗?

    loginButton.rx.tap.bind {
        print(self.nameText.value ??  "")
       self.nameText.accept("ahmet vefa saruhan")
    }.disposed(by: disposebag)

第二种情况是:

func myTestFunction(handler : () -> Void) {
    handler()
}

myTestFunction {
        self.isVisible = false
    }

这里有任何保留周期问题吗?

ios memory-management rx-swift swift4.2 retain-cycle
1个回答
2
投票

是的,当你使用self inside block时应该使用weak。并使用subscribe而不是bind。

basicLoginButton.rx.tap.subscribe(onNext: { [weak self] () in
    print(self?.nameText.value ?? "")
    self?.nameText.accept("ahmet vefa saruhan")
}).disposed(by: disposeBag)

我认为在第二种情况下,一切都是正确的,没有必要'弱'。

© www.soinside.com 2019 - 2024. All rights reserved.