0

Zum Beispiel:Wie bekomme ich den Fehlerwert von einem abonnierten RACSignal?

In einem Controller, Implementierung

func sendSuccessOrNot()->RACSignal { 
// code here 
} 

In einem anderen Controller, dass das Signal

controller.sendSuccessOrNot().subscribeNext { 

} 

aufrufen, wie in der obigen Berufung prüfen, ob sendSuccessOrNot Fehler oder Erfolg Wert sendet in reaktivem Kakao.

Antwort

1

Die Syntax Sie mich verwenden macht denken Sie Swift verwenden, in dem Fall, dass Sie nicht mit RACSignal werden soll, sollten Sie Ihre RACSignal zu einem SignalProducer mit .toSignalProducer()

func sendSuccessOrNot() -> RACSignal { 
    return RACSignal.createSignal { (subscriber) -> RACDisposable! in 
     let test = true 
     if (test) { 
      subscriber.sendNext("Value") 
      subscriber.sendCompleted() 
     } else { 
      subscriber.sendError(NSError(domain: "", code: 0, userInfo: nil)) 
     } 
     return RACDisposable(block: {}) 
    } 
} 

controller.sendSuccessOrNot().toSignalProducer().on(next: { value in 
    print("next: \(value)") 
}, 
failed: { error in 
    print("failed: \(error)") 
}).start() 

umstellen Wenn Sie immer noch mit RAC 2 dann wäre es

controller.sendSuccessOrNot().subscribeNext({ value in 
    print("next: \(value)") 
}, error: { error in 
    print("failed: \(error)") 
})  
+0

wissen Sie, wie in RAC 2.5 Version oder 2 Version zu tun? – coolly

+0

RAC 2 aber in Swift? –

+0

oh ja. Ich mache RAC in Swift und auch um es zu testen Ich möchte Fehler von der Funktion senden, also wie schicke ich Fehler absichtlich. – coolly

Verwandte Themen