iOS RxSwift在函数内部定义时如何理解可观察的生命周期

时间:2018-08-11 21:52:36

标签: memory-management swift4 automatic-ref-counting ios11 rx-swift

我对常规swift函数中作为局部变量的可观察定义的生命周期感兴趣。

函数返回时可观察的局部变量是否会被释放?在可观察的操作完成或出现错误之前,我可以依靠什么条件进行观察?

func testObservable()
{
  let obs = Observable<Int>.interval( 2, MainScheduler.instance)
  .subscribe(onNext: {print($0)}) //omitting dispose bag
}

只要有订阅者并且在取消订阅时将其丢弃,可观察的对象是否会继续触发?

这种情况怎么样?     让disposeBag = disposeBag()

func testObservable()
    {
      let obs = Observable<Int>.interval( 2, MainScheduler.instance)
      .subscribe(onNext: {print($0)})
      .disposedBy(disposeBag)
    }

1 个答案:

答案 0 :(得分:2)

当源结束(通过发出completederror)或接收器停止接受数据(通过在其一次性对象上调用处置)时,链条将中断。

因此,在您的第一个功能中,链将在程序有效期内保持活动状态,而在第二个功能中,当包装袋超出范围时,链将死亡。