2016-04-07 9 views
0

私は反応的なココア4アクションを観察しているので、アクションが実行されるときにいくつかのコードを実行できます。ReactiveCocoa 4:アクションの完了イベントを観察する

はここに私の行動のdefintionです:

ここで私が観測をやっている方法は次のとおりです。

vm.buttonAction.events.observeCompleted { 
    print("observed completed") 
} 
vm.buttonAction.events.observeNext { 
    print("observed next") 
} 

次のイベントの観察は正しく動作します。アクションがUIButtonによってトリガーされると、printステートメントが実行されます。

しかし、私の問題は、何らかの理由により、完了したイベントの観察が引き起こされないということです。これはReactiveCocoaのバグか、私は間違ったことをしていますか?

ありがとうございます!

+0

はあなたがここに同じ質問をしようだ:https://github.com/ReactiveCocoa/ReactiveCocoa/issues/2784と回答しました。あなたはここにも投稿できますか? –

答えて

2

私はReactiveCocoa githubページで同じ質問をして、回答を得ました(@ikesyoから)。完全性のために、私はここで答えを提供しています:

これは動作を意図したものです。署名は、公開のletイベントですので:Signal<Event<Output, Error>, NoError>次のように、あなたは、内側のプロデューサの完了イベントを観察することができます。

vm.buttonAction.events.observeNext { event in 
    switch event { 
    case let .Next(value): ... // A Next event from the inner producer 
    case .Completed: ... // A Completed event from the inner producer 
    default: break 
    } 
} 

出典: https://github.com/ReactiveCocoa/ReactiveCocoa/issues/2784

関連する問題