私はシグナルプロデューサーを持っています。それが終了したときに、値が送信されたかどうかを知りたいのですが、最後の値だけが必要です。とてもシンプルに思えます...
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()
しかし、値が呼び出されている間に終了が呼び出されることがありますが、myValue はまだ nil です...