2017-04-07 27 views
0

我學習ReactiveCocoa和理解,RACSignal必須訂閱了RACSubscriber的信號發送事件。很明顯,RACSignal發送事件到RACSubscriberRACSubscriber收到事件從RACSignal。但是,當您通過下面的代碼定製自己RACSignal:ReactiveCocoa:爲什麼用戶有「sendNext」方法,而「receiveNext」方法

RACSignal *racsignal = [RACSignal createSignal:^RACDisposable* (id<RACSubscriber> subscriber) { 
    //why subsriber "sendNext" not "receiveNext"? 
    [subscriber sendNext:@100]; 
    return nil; 
}]; 

的RACSubscriber協議有sendNext方法,它混淆了我,因爲receiveNext方法的名稱應該是從我的理解比較合適。任何機構能幫助我澄清這一點嗎?

回答

0

從技術上講,實現RACSubscriber協議的對象不消耗事件,而是將它們轉發給所有訂閱者。在你的情況下,只有一個,但關於RACSignal的好處是它可以從不同的對象和線程中觀察到。

所以,你是正確的,的RACSubscriber的命名可能會有點誤導,但我不會把得多關注的是,正如文件說:

您一般不應該需要實施這個協議。 + [RACSignal createSignal:],RACSignal的訂購方法或RACSubject應爲 適用於大多數用途。

相關問題