【问题标题】:ReactiveCocoa: why subscriber has "sendNext" method rather "receiveNext" methodReactiveCocoa:为什么订阅者有“sendNext”方法而不是“receiveNext”方法
【发布时间】:2017-04-07 03:12:48
【问题描述】:

我正在学习 ReactiveCocoa 并了解 RACSignal 必须订阅 RACSubscriber 才能发出发送事件的信号。很明显RACSignal send 事件到RACSubscriberRACSubscriber receive 事件从RACSignal。但是,当您通过以下代码自定义自己的 RACSignal 时:

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

RACSubscriber 协议有 sendNext 方法,这让我感到困惑,因为根据我的理解,receiveNext 的方法名称应该更合适。任何机构都可以帮我澄清一下吗?

【问题讨论】:

    标签: ios objective-c reactive-cocoa


    【解决方案1】:

    从技术上讲,实现RACSubscriber 协议的对象不会消耗这些事件,而是将它们转发给所有订阅者。在您的情况下,只有一个,但 RACSignal 的伟大之处在于它可以从不同的对象和线程中观察到。

    所以你是对的,RACSubscriber 的命名可能有点误导,但我不会太在意这一点,正如文档所说:

    您通常不需要实现此协议。 +[RAC信号 createSignal:],RACSignal 的订阅方法,或者 RACSubject 应该 适用于大多数用途。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-15
      • 1970-01-01
      相关资源
      最近更新 更多