2017-04-07 24 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应为 适用于大多数用途。

相关问题