Ios rxswift块生命周期

Ios rxswift块生命周期,ios,rx-swift,Ios,Rx Swift,我有这样一个viewmode类: class ViewMode { let validateCountResult: Driver<Bool> init(username: Driver<String>) { validateCountResult = username .flatMapLatest { username in return // validate username } } 当

我有这样一个viewmode类:

class ViewMode {
 let validateCountResult: Driver<Bool>
 init(username: Driver<String>) {
     validateCountResult = username
            .flatMapLatest { username in
                return // validate username
    }
}
当viewDidload完成时,我认为viewmode也应该去初始化。但是我看到绑定仍然存在,FuncA仍然被调用


为什么会这样?

理解绑定的最简单方法是将关系视为两个实体之间的连接: 生产者,产生价值 接收器,用于处理来自生产者的值。 接收方无法返回值。这是使用RxSwift绑定时的一般规则。
绑定的基本功能是绑定(to:),要将一个可观察对象绑定到另一个实体,需要接收方符合observer类型

您应该通过创建一个
DisposeBag
来处置您的
一次性
类型

如果您不这样做,就不能保证您的viewController甚至Denits或您的一次性类型也会被处理掉。它们通过
ViewMode
一起创建一个相互相似的对象,并且所有三个对象都保留在内存中

请看一篇文章,了解如何查找内存泄漏

class ViewController : UIViewController{
  override func viewDidLoad() {
        super.viewDidLoad()
        let viewmode = 
        ViewMode(textfiled.rx.texttext.orEmpty.asDriver())
        viewmode.validateCountResult.drive(onNext:{
          // TODO Something
           FuncA()
         })
   }
}