Ios rxswift块生命周期
我有这样一个viewmode类: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 } } 当
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()
})
}
}