RAC系统化学习

1、RACSignal:

    // 只要订阅者调用sendNext,就会执行nextBlock

// 只要订阅RACDynamicSignal,就会执行didSubscribe

// 前提条件是RACDynamicSignal,不同类型信号的订阅,处理订阅的事情不一样

//创建信号,此时信号是冷信号,并不能发送数据
RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {

        [subscriber sendNext:@"发送数据"];        //信号销毁
        return [RACDisposable disposableWithBlock:^{

            NSLog(@"信号取消订阅");
        }];

    }];
    //信号订阅,此时信号变为热信号,接收到数据
    [signal subscribeNext:^(id x) {

// nextBlock调用:只要订阅者发送数据就会调用

        NSLog(@"%@", x);
    }];

2、RACSubject

 //创建信号
    RACSubject *subject = [RACSubject subject];
    /*
      不同信号订阅的方式不一样
      RACSubject处理订阅:仅仅是保存订阅者,可以多个订阅者
      底层实现:遍历所有的订阅者,调用nextBlock

      执行流程:
      RACSubject被订阅,仅仅是保存订阅者
      RACSubject发送数据,遍历所有的订阅,调用他们的nextBlock
     */
    [subject subscribeNext:^(id x) {

        NSLog(@"++++++%@", x);

    }];
    [subject subscribeNext:^(id x) {

        NSLog(@"-----%@", x);

    }];
    [subject sendNext:@111];

3、RACReplaySubject

时间: 2024-12-12 16:45:44

RAC系统化学习的相关文章

RAC(ReactiveCocoa)学习之道

1.ReactiveCocoa简介 ReactiveCocoa(简称RAC),是由Github开源的一个应用于iOS和iOS开发的新框架.Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾.RAC具有函数式编程和响应式编程的特性,主要吸取了 .Net 的 Reactive Extensions 的设计和实现. 2.ReactiveCocoa作用 在我们iOS开发过程中,经常会响应某些事件来处理某些业务逻辑,例如按钮的点击,上拉刷新,网络请求,属性的变化(通过KVO)或者用户位置

系统化学习

一般系统化的学习可分为三个阶段: 1> 掌握技能,提升技能 技能是主要的,没有技能是无法进行学习的,首先确立一个技能的方向,这是主要的,其次要跟这个圈子的人交朋友,知道这个技能圈子大概的范围. 2> 深入学习,技能实践 技能是需要打磨的,当技能确立后,需要对技能进行修炼,当有一定的经验值后,可以确认下自己的修炼成果,比如独立使用技能完成一项任务. 实践是检验真理的唯一标准,这句话也说得很好,之后需要再次确认在此后的技能需要修炼的空间时间,再次获取经验,直到有一些成果. 3> 整理技能,传

rac完全恢复学习

1.查看现有数据库文件 SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- +DATA/rac/datafile/system.259.866566403 +DATA/rac/datafile/undotbs1.260.866566407 +DATA/rac/datafile/sysaux.261.866566

图灵学院VIP课程:系统化学习 精准化辅导

图灵学院VIP课程分为四大知识模块,架构.人工智能.区块链以及大数据.图灵学院多年如一日对课程的精心钻研和对知识点的梳理.研究和总结,可以帮助学生提高学习技术知识的效率.通过掌握这些VIP课程,推动学生在将来的职业之路上更加顺利地求职就业. 1. 架构 架构的描述语言用于描述软件的体系架构,现在已有多种架构描述语言,如Acme .Wright.C2.Darwin.架构中有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计.一个架构师需要足够的想像力, 扩展不同维度的目标需求,为目

KOTLIN语言系统化学习K02-KOTLIN基础

SHELL%E8%84%9A%E6%9C%AC%E5%92%8C%E6%B5%81%E7%A8%8B%E6%8E%A7%E5%88%B6 http://mp3.baidu.com/songlist/502239356?5rEb=cgK9 http://mp3.baidu.com/songlist/495639600?3p&vm0aF1j_jS0lDY=F6 http://mp3.baidu.com/songlist/502552526?dDo&ba_A=n http://mp3.baidu

nmap 源码学习一 下载编译

简介 nmap是一款开源免费的扫描工具,学习其源码有助于加深对网络基础知识的理解.我对网络的基础知识一直是了解却不深入,以前也用c写过探测操作系统指纹的程序.现在为了深入学习网络安全知识,决定系统化学习一些工具及其原理.使用.nmap是首选的学习对象. SVN检出地址 官方编译文档 一开始我在windows下编译的,但win2012以上版本遇到很多问题.后来改为了Ubuntu下编译使用. Ubuntu下编译过程 1.下载安装包 我下载的是nmap-6.49BETA1.tar.bz2 2.解压 b

为什么越学反而越蠢?碎片化学习是个骗局

来源于:https://news.cnblogs.com/n/558233/ 编者按:本文来自微信公众号"古典古少侠"(ID:gudian515),作者古典 先给你讲个故事,看你有没有中招: 有一天,你的朋友给你"知识装逼"了一个术语,牛!怎么知道的?--他推给你一个公众号. 你开始关注,觉得哇!大神!牛逼!长见识! 每天刷每天刷每天刷.很多问题也有了解决方法--按照这个进度,过 3 年就能理解宇宙终极奥义了. 慢慢你有了十多个类似的号,承包了你从专业.生活.工作.

41.学习这事没有你想象那么难

偶尔面试应聘者的时候,发现有的应聘者虽然已经毕业一两年了,但和他们聊天时,觉得他们的技术水平怎么就像刚毕业的情况,问他们基础的技术问题好像都不了解?但是有的人毕业一两年后,技术已经能独当一面.阻碍一些人进步的因素有哪些呢? 我问一个应聘者,你的项目是部署在部署在linux服务器吗? 他摇了摇头,回答:是在window服务器. 我问,那你了解linux下的基本操作和命令吗? 他答:平时工作中用不到,就没怎么了解. 听完这个应聘者的回答,我非常失望.linux在App后台中的地位,怎么重视都不为过,

前端学习的几个网站

1.菜鸟教程:http://www.runoob.com/ 菜鸟教程提供最全的编程技术基础教程, 介绍了HTML.CSS.Javascript,Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识,菜鸟入门浏览,很简单 2.w3school 在线教程:http://www.w3school.com.cn/领先的 Web 技术教程 - 全部免费,在 w3school,你可以找到你所需要的所有的网站建设教程.从基础的 HTML 到 CSS,乃至进阶的XML.SQL.J