2 本次讲资源回收机制,在大多数事件队列是无限的时候,就会用到的
如下面代码
let obse = Observable.interval(1, scheduler: MainScheduler.instance).subscribe(
onNext:{ print($0) },
onDisposed:{print("释放")}
)
这里你执行是不会得到释放的结果,并且会一直执行下去的。
可以使用 obse.dispose() 来退出订阅
这样就不会执行
但是rxSwift有提供一个很好的机制叫做DisposeBag
可以把多个订阅对象装在DisposeBag里,当DisposeBag被销毁的时候,他订阅的东西也自然都会销毁。
这里创建一个对象 var bag = DisposeBag()
Observable.interval(1, scheduler: MainScheduler.instance).subscribe(
onNext:{ print($0) },
onDisposed:{print("释放")}
).disposed(by: bag)
上面代码还是一样 尾巴上给这个订阅对象放在bag里
当想要销毁他的时候,执行以下一句就可以
bag = DisposeBag()
下一章传送门:rxSwift从零开始的代码3 - 简书
网友评论