2016-04-25 11 views

Antwort

1

Um ein Signal zu erzeugen, das manuell senden kann, können Sie Signal<(), NoError>.pipe() verwenden, um eine Referenz auf den "Beobachter" des Signals zu erhalten, mit dem Sie Ereignisse auf dem Signal manuell senden können.

let (flagSignal, flagObserver) = Signal<(), NoError>.pipe() 
someSignal.takeUntil(flagSignal).observeNext { _ in 

} 

//somewhere else, trigger the signal manually with the Observer 
flagObserver.sendNext(()) 
flagObserver.sendCompleted() //complete the signal and free memory 

und wenn Sie Ihre flagSignal zu einem SignalProducer aus irgendeinem Grund konvertieren müssen, gibt es eine SignalProducer Konstruktor für das,

let flagSignalProducer = SignalProducer(signal: flagSignal)