rac

美团技术分析:http://tech.meituan.com/tag/ReactiveCocoa

干货集中营-ReactiveCocoa+RXSwift+MVVM:http://www.cocoachina.com/ios/20160729/17244.html

ReactiveCocoa入门教程:第一部分:http://www.cocoachina.com/ios/20150123/10994.html

图解ReactiveCocoa: http://www.cocoachina.com/ios/20161130/18232.html

ReactiveCocoa 中 奇妙无比的“宏”魔法 :http://www.cocoachina.com/ios/20170214/18682.html

ReactiveCocoa 中 RACSignal 所有变换操作底层实现分析:(上)http://www.cocoachina.com/ios/20161206/18300.html

http://www.cocoachina.com/ios/20160706/16934.html



函数响应式编程

ReactiveCoCoa是iOS中实践函数响应式编程的利器。

函数式编程的特点是:

数据结构比较少,鼓励函数的重用,通过组合不同的函数行程高阶函数来满足需求

面向对象通过封装不确定因素来使得代码被人理解,而函数式编程通过减少不确定因素来使得代码被人理解

函数式的架构都是基于值不可变无副作用这个特点。

响应式编程特点是:

面向数据流和变化传播的编程范式

a=b+c, a的值随着b和c的更新而更新,就像Excel一样

可以显示的使用箭头来表示数据流向

图解RAC

ReactiveCocoa的源码阅读起来相对其他开源代码来说更不容易,因为需要很多函数式编程的思维。我喜欢把难以理解的概念在脑中用图构思出来,所以这篇文章将用图片来描述我脑中的RAC思想。

RACSigal

RACSigal是RAC中的一个重要的类,如果按照黑盒的理解,RACSigal是个魔法一般的箱子,它可以把传送给它的数据在箱子里面经过各种操作变换成另一种东西,然后再传递给下一个箱子。而它可以变换成好多东西,可以是一个数字,也可以是一个新的箱子(RACSignal)。

subcribe

1

(RACDisposable *)subscribe:(id)subscriber;

subscribe是订阅者向RACSigal建立起了订阅关系,通过一条虚线来表示订阅,同一个箱子可能会和多个订阅者连接,当箱子里面有值传出的时候,会向所有订阅者发送值。

map

map是箱子里面那坨乱七八糟的线,魔法一样地把输入到箱子里面的值变成另一个值,再包装成新的箱子,所有订阅这个新箱子的订阅者都将接受到这个新值。

flattenMap

flattenMap是RAC中非常多operator的基础函数。flattenMap把传入的值转变成一个个新的箱子,然后把这些箱子拆箱,再把值输出给订阅者。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,064评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,606评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,011评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,550评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,465评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,919评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,428评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,075评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,208评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,185评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,191评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,914评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,482评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,585评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,825评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,194评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,703评论 2 339

推荐阅读更多精彩内容

  • RAC使用测试Demo下载:github.com/FuWees/WPRACTestDemo 1.ReactiveC...
    FuWees阅读 6,341评论 3 10
  • 标签: iOS RAC 概述 ReactiveCocoa是一个函数响应式编程框架,它能让我们脱离Cocoa AP...
    GodyZ阅读 7,497评论 16 97
  • RAC支持的UI控件 RACCommand RACCommand类用于表示事件的执行,一般来说是在UI上的某些动作...
    花前月下阅读 2,728评论 0 5
  • 1.ReactiveCocoa简介 ReactiveCocoa(简称RAC),是由Github开源的一个应用于IO...
    雷晏阅读 1,156评论 4 15
  • 背景: 作为一个iOS开发者,你写的每一行代码几乎都是在响应某个事件,例如按钮的点击,收到网络消息,属性的变化(通...
    春暖花已开阅读 9,726评论 7 9