代码之家  ›  专栏  ›  技术社区  ›  ahmetvefa53

RxSwfit绑定操作保留周期

  •  0
  • ahmetvefa53  · 技术社区  · 7 年前

        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
        }
    

    这里有什么保留周期的问题吗?

    0 回复  |  直到 7 年前
        1
  •  3
  •   Khoren Markosyan    7 年前

    是的,当您在块内使用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)
    

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

    推荐文章