如何检查 SwiftUI 何时订阅了 ObservableObject 的已发布属性?
Posted
技术标签:
【中文标题】如何检查 SwiftUI 何时订阅了 ObservableObject 的已发布属性?【英文标题】:How to check when SwiftUI subscribed to published property of 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")
【问题讨论】:
【参考方案1】:啊,只是换了
var objectWillChange: AnyPublisher<Int, Never>?
到
var objectWillChange: AnyPublisher<Int, Never>
工作。
【讨论】:
以上是关于如何检查 SwiftUI 何时订阅了 ObservableObject 的已发布属性?的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI 如何将数据传递给 ObservedObject 函数