RACMulticastConnection

  • 1,为什么要用RACMulticastConnection:
    //如下,有的时候多次订阅只是想要拿到请求的数据,不需要多次请求,因为多次请求会浪费资源,影响速度,所以下面的常规方法就不太适用了
    //因为每订阅一次,就会调用信号中的block一次,也就是需要发送多次相同的网络请求
    RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
        
        NSLog(@"发送数据请求");
        [subscriber sendNext:@"请求得到的数据"];
        
        
        return  nil;
    }];
    
    [signal subscribeNext:^(id x) {
        NSLog(@"%@",x);
    }];
    
    [signal subscribeNext:^(id x) {
        NSLog(@"%@",x);
    }];
}
  • 2.1,如何使用RACMulticastConnection:(只请求一次,多次调用请求到的数据)
//1,创建信号
    RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
        NSLog(@"请求数据");
        [subscriber sendNext:@"请求到的数据"];
        
        return  nil;
    }];
    
    //2,建立连接,使用这个方式建立连接只能先连接,后发送请求也就是订阅
    RACMulticastConnection *multicaseConnection = [signal publish];
    
    //3,发送请求
    [multicaseConnection.signal subscribeNext:^(id x) {
        NSLog(@"%@", x);
    }];
    
    [multicaseConnection.signal subscribeNext:^(id x) {
        NSLog(@"%@", x);
    }];
    
    //4,注意:最后需要手动连接
    [multicaseConnection connect];
    
  • 2.2, 使用RACMulticastConnection:使用第二种建立连接的方式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 5,242评论 1 23
  • ReactiveCocoa 中的信号信号在默认情况下都是冷的,每次有新的订阅者订阅信号时都会执行信号创建时传入的 ...
    Draveness阅读 1,750评论 2 13
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,351评论 11 349
  • 我曾做过许多事,有好的、有坏的。我曾伤害过许多人,有我爱的、有爱我的。我曾独自走在雨夜,人是湿的、心是凉的。我也曾...
    孤于我阅读 256评论 0 0
  • 知乎上有句话特别应景"你每天忙着工作、聚会、旅行、交朋友,别人眼中的你日子充实而美好,可父母眼中的你,只不过是个年...
    兰卡公子阅读 1,428评论 0 1