合并-测试CurrentValueSubject是否有任何订阅者

时间:2019-12-12 11:32:53

标签: ios swift combine

我想验证某些CurrentValueSubject是否添加了任何订阅。有什么方法可以验证这一点吗?

1 个答案:

答案 0 :(得分:1)

最简单的方法可能是使用handleEvents并跟踪计数器。

class A {

    var count = 0
    let subject = CurrentValueSubject<Bool, Never>(true)

    func myStuff() {
        subject.handleEvents(receiveSubscription: { [unowned self] _ in
            self.count += 1
        }, receiveCompletion: { [unowned self] _ in
            self.count -= 1
        }, receiveCancel: {
            self.count -= 1
        })
    }
}

不确定是否可以解决您的问题。

您甚至可以创建一个自定义Publisher来内部处理计数并将其公开为只读属性,这可能会更好。