【发布时间】:2020-08-16 10:50:08
【问题描述】:
我在 SwiftUI 应用中有这样的代码:
@Published var myFlag = false {
willSet {
... useful code ...
objectWillChange.send()
}
}
它或多或少有效,但要准确地得到我需要的东西,我想要这样的东西:
@Published var myFlag = false {
didSet {
... useful code ...
objectDidChange.send()
}
}
原因很简单,我希望在 myFlag 更新而不是之前得到通知。不过,它似乎不是这样工作的。 有没有其他方法可以得到我想要的?
除了我正在使用这个代码:
.onReceive(self.appState.$myFlag) {...}
在 ContentView.swift 中
【问题讨论】:
-
objectDidChange.send()会在设置@Published 属性时自动调用,因此您的代码至少是多余的(甚至可能是有害的)。你想用那个代码做什么?你会展示这个可观察对象的客户吗?或者,更好的、完整的可测试快照? -
@Asperi;我需要能够做一些辅助处理(即......有用的代码......),就像我可以在 willSet 中做的那样。但我也想在值更新之后而不是之前发送更新信号。如果我只是从 willSet 中删除 objectWillChange.send()。这行得通吗?