【问题标题】:How to check when SwiftUI subscribed to published property of ObservableObject?如何检查 SwiftUI 何时订阅了 ObservableObject 的已发布属性?
【发布时间】:2020-05-21 12:59:37
【问题描述】:

我这样做了,但从未调用 print 语句。我错过了什么?

final class TestObservableObject: ObservableObject {
    @Published
    private (set) var publishedProperty: Int = 0
    var objectWillChange: AnyPublisher<Int, Never>? = Empty().eraseToAnyPublisher()
    init() {
        self.objectWillChange = $publishedProperty.handleEvents(receiveSubscription: { (_) in
            print("receiveSubscription")
        }).eraseToAnyPublisher()
    }
}

struct TestView: View {
    @ObservedObject
    private var test: TestObservableObject
    init() {
        test = TestObservableObject()
    }
    var body: some View {
        return Group {
            if test.publishedProperty == 0 {
                Text("0")
            } else {
                Text("100")
            }
        }
    }
}

【问题讨论】:

    标签: swiftui observable combine


    【解决方案1】:

    啊,只是换了

    var objectWillChange: AnyPublisher<Int, Never>?
    

    var objectWillChange: AnyPublisher<Int, Never>
    

    工作。

    【讨论】:

      猜你喜欢
      • 2021-08-15
      • 2022-10-20
      • 2021-02-27
      • 1970-01-01
      • 2020-12-05
      • 2014-08-19
      • 2021-10-07
      • 2020-10-25
      • 1970-01-01
      相关资源
      最近更新 更多