我正在学习ReactiveCocoa并了解RACSignal
必须订阅RACSubscriber
以获取发送该事件的信号。显然RACSignal
发送事件发送到RACSubscriber
,RACSubscriber
接收事件来自RACSignal
。但是,当您通过以下代码自定义自己的RACSignal时:
RACSignal *racsignal = [RACSignal createSignal:^RACDisposable* (id<RACSubscriber> subscriber) {
//why subsriber "sendNext" not "receiveNext"?
[subscriber sendNext:@100];
return nil;
}];
RACSubscriber协议有sendNext
方法让我感到困惑,因为根据我的理解,receiveNext
的方法名称应该更合适。任何人都可以帮我澄清一下吗?
答案 0 :(得分:0)
从技术上讲,实现RACSubscriber
协议的对象不会消耗这些事件,而是将它们转发给所有订阅者。在你的情况下只有一个,但关于RACSignal
的好处是它可以从不同的对象和线程中观察到。
你是对的,RACSubscriber
的命名可能有点误导,但我不会那么关注,就像文档说的那样:
您通常不需要实施此协议。 + [RACSignal createSignal:],RACSignal的订阅方法,或RACSubject应该 适用于大多数用途。