美文网首页Reactivecocoa相关iOS-RACiOS Developer
iOS开发RAC学习笔记(八)信号的调度器RACSchedule

iOS开发RAC学习笔记(八)信号的调度器RACSchedule

作者: Link913 | 来源:发表于2016-09-02 10:00 被阅读856次

github源代码地址

信号的调度器RACScheduler(多线程)

deliverOn

在上一篇我们讲到过RAC的副作用,deliverOn这个方法会将内容传递切换到指定线程,而副作用依旧会在指定线程内执行

    //创建信号
    -(void)createUpSignals{

    RACSignal * signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {

        NSLog(@"sendTestSignal%@",[NSThread currentThread]);

        [subscriber sendNext:@1];

        [subscriber sendCompleted];

        return [RACDisposable disposableWithBlock:^{

                }];
        }];

    self.testSignal = signal;

    }

    //订阅信号
    //要想放在主线程执行只要将[RACScheduler scheduler]更换为[RACScheduler mainThreadScheduler]
    [[self.testSignal deliverOn:[RACScheduler scheduler]] subscribeNext:^(id x) {

        NSLog(@"receiveSignal%@",[NSThread currentThread]);

    }];
  • 打印结果如下

      2016-09-02 09:48:59.697 Signal processing[1686:22894] sendTestSignal<NSThread: 0x7fb373c0bb80>{number = 1, name = main}
      2016-09-02 09:48:59.697 Signal processing[1686:24680] receiveSignal<NSThread: 0x7fb373e07070>{number = 3, name = (null)}
    

subscribeOn则会将传递内容和副作用一起放到指定线程执行

    [[[RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {

        NSLog(@"sendSignal%@",[NSThread currentThread]);

        [subscriber sendNext:@1];

        return [RACDisposable disposableWithBlock:^{

                }];

    }] subscribeOn:[RACScheduler scheduler]] subscribeNext:^(id x) {

        NSLog(@"receiveSignal%@",[NSThread currentThread]);

    }];
  • 打印结果如下

      2016-09-02 09:54:47.819 Signal processing[1778:54504] sendSignal<NSThread: 0x7fde7adb4e00>{number = 2, name = (null)}
      2016-09-02 09:54:47.819 Signal processing[1778:54504] receiveSignal<NSThread: 0x7fde7adb4e00>{number = 2, name = (null)}

相关文章

  • iOS开发RAC学习笔记(八)信号的调度器RACSchedule

    github源代码地址 信号的调度器RACScheduler(多线程) deliverOn 在上一篇我们讲到过RA...

  • RAC底层原理分析上

    RACScheduler:信号调度器,是一个线性执行队列,rac中的信号可以在RACScheduler上执行任务、...

  • RAC信号组合

    转自iOS开发 「RAC」RAC信号组合的妙用[https://www.jianshu.com/p/eba85d2...

  • iOS开发RAC学习笔记(五)信号的组合

    github源代码地址 信号的组合处理 本部分参考了峥吖前辈的博客,并结合了自己的一些实践和想法 信号的依赖 使用...

  • RAC简介

    前言 RAC是iOS开发中经常使用到响应式框架,在OC中可以通过pod导入 RAC信号创建与发送 RAC中一个常见...

  • RAC实践和注意事项

    RAC:包括信号源、订阅者、调度器、清洁工 信号源: RACSignal,代表未来将会被传送的值,他是一种push...

  • 【Objective-c】_蓝牙开发

    ios蓝牙开发学习笔记(一)蓝牙概述 ios蓝牙开发学习笔记(二)central角色的实现 ios蓝牙开发学习笔记...

  • iOS开发 「RAC」RAC信号组合的妙用

    • concat:按一定顺序拼接信号,当多个信号发出的时候,有顺序的接收信号,依赖关系把一组信号串联起来,前面一个...

  • RAC基础

    最近接触学习到了RAC(ReactiveCocoa),RAC是函数式+响应式编程结合 我们在iOS开发中,页面之间...

  • ReactiveObjC(RAC)基础

    最近学习了一下RAC的使用,参考了下面两篇文章 Jonzzs的【iOS 开发】ReactiveObjC(RAC)的...

网友评论

    本文标题:iOS开发RAC学习笔记(八)信号的调度器RACSchedule

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