我对常规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)
}
答案 0 :(得分:2)
当源结束(通过发出completed
或error
)或接收器停止接受数据(通过在其一次性对象上调用处置)时,链条将中断。
因此,在您的第一个功能中,链将在程序有效期内保持活动状态,而在第二个功能中,当包装袋超出范围时,链将死亡。