美文网首页
RAC使用的一些小问题

RAC使用的一些小问题

作者: 玩呀玩 | 来源:发表于2018-04-27 11:54 被阅读17次
    RACSignal *signal = [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber>  _Nonnull subscriber) {
        NSLog(@"sendNext");
        [subscriber sendNext:@{@"name":@"n",@"age":@"a"}];
        return nil;
    }];//模拟请求用户数据
    RACSignal *nameSignal = [signal flattenMap:^__kindof RACSignal * _Nullable(id  _Nullable value) {
        return [RACSignal return:[value objectForKey:@"name"]];
    }];
    RACSignal *ageSignal = [signal flattenMap:^__kindof RACSignal * _Nullable(id  _Nullable value) {
        return [RACSignal return:[value objectForKey:@"age"]];
    }];
    [nameSignal subscribeNext:^(id  _Nullable x) {
        NSLog(@"name %@",x);
    }];
    [ageSignal subscribeNext:^(id  _Nullable x) {
        NSLog(@"age %@",x);
    }];

这里会请求两遍 因为这个信号是冷信号

nameSiagnal和ageSiagnal被订阅的时候间接的对原信号进行订阅

  • 热信号是主动的,即使你没有订阅事件,仍然执行。可以一对多,所有订阅者共享消息

  • 冷信号是被动的,只有你订阅事件才会发送消息。冷信号只能一对一,当有不同的订阅者订阅事件,消息会重新完整发送

避免这种情况需要把冷信号转换成热信号

RACSignal *signal = [[RACSignal getCurrentUserModel] replayLazily];

将冷信号转换为热信号的方法

- (RACMulticastConnection<ValueType> *)publish RAC_WARN_UNUSED_RESULT;

- (RACMulticastConnection<ValueType> *)multicast:(RACSubject<ValueType> *)subject RAC_WARN_UNUSED_RESULT;

- (RACSignal<ValueType> *)replay;

- (RACSignal<ValueType> *)replayLast;

- (RACSignal<ValueType> *)replayLazily;

具体使用:面向wiki编程 (Google,baidu,注释,wiki)

相关文章

  • RAC使用的一些小问题

    这里会请求两遍 因为这个信号是冷信号 nameSiagnal和ageSiagnal被订阅的时候间接的对原信号进行订...

  • 使用RAC出现的一些小问题

    @RACSubject信号 注意点:1如果一个页面需要多次发送这个消息,那么似乎会暴露一个bug,信号不会被销毁,...

  • IOS RAC实践

    前言 RAC使用-->IOS RAC使用 -- ReactiveObjC 本文使用RAC+MVVM来模拟用户登录 ...

  • RAC(ReactiveCocoa)使用方法(一)

    RAC(ReactiveCocoa)使用方法(一)RAC(ReactiveCocoa)使用方法(二) 什么是RAC...

  • RAC使用

    RAC常用宏 KVO监听使用 RAC宏使用 信号类使用 使用信号模拟代理 rac_sequence遍历字典 解包元...

  • ios RAC使用总结(RACSignal、RACDisposa

    在开始MVVM之前,RAC是肯定绕不过去的。MVVM+RAC真的是双剑合璧。今天 我们先来看看RAC的使用和一些原...

  • RAC 的使用

    RAC(ReactiveCocoa) 使用详解 RAC 是什么? ReactiveCocoa(RAC) githu...

  • ReactiveCocoa源码与坑

    在阅读源码之前容我抛出个小问题,看看下面的代码? 这是公司项目中对RAC的一段使用,生成的RACSignal实例自...

  • 小驴拉磨之—ReactiveCocao(RAC)一些重要的宏

    使用过RAC的都知道RAC的宏是非常强大的,在这我给大家介绍一些重要的宏。 元宏(RAC中最基本一个宏,PS:那个...

  • ReactiveCocoa 你有疑惑吗?

    很多人用了RAC 有没有疑惑 使用 一些RAC的宏 前面为什么一定要加@符号 我刚开始用的使用也纳闷,结果点击进去...

网友评论

      本文标题:RAC使用的一些小问题

      本文链接:https://www.haomeiwen.com/subject/nrdblftx.html