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

Memory management iOS RxSwift如何理解在函数内部定义的可观察生命周期,memory-management,swift4,automatic-ref-counting,ios11,rx-swift,Memory Management,Swift4,Automatic Ref Counting,Ios11,Rx Swift,我对常规swift函数中可观测定义的生命周期感兴趣——作为局部变量 当函数返回时,局部变量observable是否被解除分配?在什么情况下,我可以指望observable操作完成或出错 func testObservable() { let obs = Observable<Int>.interval( 2, MainScheduler.instance) .subscribe(onNext: {print($0)}) //omitting dispose bag } fu

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

当函数返回时,局部变量observable是否被解除分配?在什么情况下,我可以指望observable操作完成或出错

func testObservable()
{
  let obs = Observable<Int>.interval( 2, MainScheduler.instance)
  .subscribe(onNext: {print($0)}) //omitting dispose bag
}
func testObservable()
{
设obs=Observable.interval(2,MainScheduler.instance)
.subscribe(onNext:{print($0)})//省略处理包
}
只要有订户,可观测对象是否会继续激发,并在取消订户时释放

这个案子怎么样? 设disposeBag=disposeBag()

func testObservable()
{
设obs=Observable.interval(2,MainScheduler.instance)
.subscribe(onNext:{print($0)})
.处置人(处置人)
}

当源端结束(通过发出
已完成的
错误)或接收器停止接收数据(通过在其上调用dispose)时,链将断开


因此,在第一个函数中,链将在程序的整个生命周期内保持活动状态,在第二个函数中,当包超出范围时,链将失效。

运行代码时会发生什么?该disposeBag是在哪里创建的,何时被清除?
func testObservable()
    {
      let obs = Observable<Int>.interval( 2, MainScheduler.instance)
      .subscribe(onNext: {print($0)})
      .disposedBy(disposeBag)
    }