Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 谁是观察员?_Swift_Observable - Fatal编程技术网

Swift 谁是观察员?

Swift 谁是观察员?,swift,observable,Swift,Observable,我最近才开始学习Rxswift。有一个问题一直困扰着我。以此代码段为例: class MyClass { var v = Variable("") var bag = DisposeBag() func subscribe() { let ob = v.asObservable() ob.subscribe(onNext: { (value) in print("Value changed: " + value)

我最近才开始学习Rxswift。有一个问题一直困扰着我。以此代码段为例:

class MyClass {
    var v = Variable("")
    var bag = DisposeBag()
    func subscribe() {
        let ob = v.asObservable()
        ob.subscribe(onNext: { (value) in
            print("Value changed: " + value)
        }).disposed(by: bag)
    }
}
困扰我的是,在subscribe()方法的场景中,真正的观察者在哪里/谁?就物体而言,这里我们有一个ob,它作为一个可观察的物体,但我在任何地方都看不到观察者的物体


有人能让我开朗一下吗

上面示例中的观察者实际上是您提供给
subscribe(onNext:)
函数的闭包

当然,闭包的持续时间取决于
DisposeBag
的生命周期:当
MyClass
实例死亡时,
bag
死亡,因此闭包也死亡。因此,您可能会发现有人将您的
MyClass
实例称为“观察者”