我有一个信号生产者,当它终止时我想知道是否发送了一个值,我只需要最后一个,看起来很简单......
let myProducer: SignalProducer<MyObject, MyError> = getMyProducer()
myProducer.on(terminated: {
// I need the last value here
// Or I need to know if value was never called
}).start()
我试图将值存储在本地 var 中:
let myProducer: SignalProducer<MyObject, MyError> = getMyProducer()
var myValue: MyObject?
myProducer.on(value: { value in
myValue = value
}, terminated: {
guard let value = myValue else {
// value was never called
return
}
// value was called
}).start()
但是有时在调用 value 时调用了 terminate ,但 myValue 仍然是 nil ...