RxSwift 绑定操作保留周期

RxSwfit bind operation retain cycle

我是 rxswift 的新手 framework.I 已经写了下面的代码但我不是 sure.Is 有任何保留循环吗?我必须对自己使用弱引用吗?

    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
    }

这里有任何保留循环问题吗?

是的,当你在 block 中使用 self 时应该使用 weak。 并使用订阅而不是绑定。

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

我认为在第二种情况下,一切都正确,不需要'weak'。