rxSwift从零开始的代码2

2018-01-23  本文已影响0人  卖毛玉的小贩

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 - 简书

上一篇 下一篇

猜你喜欢

热点阅读