2016-04-07 17 views
0

Ich beobachte eine reaktive Kakao-4-Aktion, sodass ich beim Ausführen der Aktion Code ausführen kann.ReactiveCocoa 4: Beobachten des abgeschlossenen Ereignisses einer Aktion

Hier ist meine Klage der Defintion:

Hier ist, wie ich das beobachtende mache:

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

Die Beobachtung der nächsten Ereignisse korrekt funktioniert. Wenn die Aktion durch eine UIButton ausgelöst wird, wird die print-Anweisung ausgeführt.

Mein Problem ist jedoch, dass aus irgendeinem Grund die Beobachtung des abgeschlossenen Ereignisses nie ausgelöst wird. Könnte das ein Fehler in ReactiveCocoa sein oder mache ich etwas falsches?

Danke!

+0

scheint, dass Sie die gleiche Frage hier gestellt: https://github.com/ReactiveCocoa/ReactiveCocoa/issues/2784 und bekam eine Antwort. Kannst du es auch hier posten? –

Antwort

2

Ich habe die gleiche Frage auf der ReactiveCocoa Github-Seite gestellt und bekam eine Antwort (von @ikesyo). Der Vollständigkeit halber gebe ich die Antwort hier:

Dies ist beabsichtigtes Verhalten. Da die Signatur des öffentlichen let Ereignisse ist: Signal<Event<Output, Error>, NoError>, können Sie den inneren Erzeugers Completed Ereignisse beobachten, wie folgt:

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 
    } 
} 

Quelle: https://github.com/ReactiveCocoa/ReactiveCocoa/issues/2784