【发布时间】:2022-06-29 20:33:47
【问题描述】:
我刚开始学习 Combine,对 KVO 发布者的行为感到很困惑。他们只是不发布任何事件,除了初始值。 这是我使用的示例代码:
@objc class SampleClass: NSObject {
@objc var name: NSString = "1"
}
var a = SampleClass()
let kvoPublisher = a.publisher(for: \.name)
.sink(receiveCompletion: {
print("completion \($0)")
}, receiveValue: { newVal in
print("new val - \(newVal)")
})
a.name = "2"
a.name = "3"
print("Finished; publisher = \(kvoPublisher) | a.name = \(a.name)")
控制台输出是
new val - 1
Finished; publisher = Combine.AnyCancellable | a.name = 3
您能否解释一下我在这里缺少什么以及如何解决它?
谢谢。
【问题讨论】:
标签: swift reactive-programming combine key-value-observing