Ios RxSwfit绑定操作保留周期

Ios RxSwfit绑定操作保留周期,ios,memory-management,rx-swift,swift4.2,retain-cycle,Ios,Memory Management,Rx Swift,Swift4.2,Retain Cycle,我是rxswift框架的新手。我已经在下面写了一段代码,我不确定。是否有保留周期?我必须对自我使用弱引用吗 loginButton.rx.tap.bind { print(self.nameText.value ?? "") self.nameText.accept("ahmet vefa saruhan") }.disposed(by: disposebag) 第二种情况是: func myTestFunction(handler : () -

我是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
    }

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

是的,当您在块内使用self时,应使用weak。 并使用subscribe而不是bind

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

我认为在第二种情况下,一切都是正确的,不需要“软弱”

谢谢你的回答。我已经用第二部分编辑了这个问题:)在第二个例子中,应该使用weak?还有为什么我必须转述它?同样的功能谢谢。我得到了它。如果闭包存储在变量中,则存在一个保留循环。