ReactiveCocoa学习总结(1)

1. 它是什么?

官方解释:

[RACSignal] is a push-driven stream with a focus on asynchronous event 
delivery through subscriptions.

其它解释:

ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾。

信号是数据流,可以被绑定和传递。可以把信号想象成水龙头,只不过里面不是水,而是玻璃球(value),直径跟水管的内径一样,这样就能保证玻璃球是依次排列,不会出现并排的情况(数据都是线性处理的,不会出现并发情况)。水龙头的开关默认是关的,除非有了接收方(subscriber),才会打开。这样只要有新的玻璃球进来,就会自动传送给接收方。

2.它的作用?

代替target,代理,通知,kvo,不用关心调用顺序,直接考虑结果等等....

3.如何工作?

把所有事件都看成一个信号,信号创建之后只要有  订阅   就可以收到创建之后发送的数据! 同时我们也可以进行当前信号的 过滤、方法的跳转、然后返回对应的信号和数据...

函数式编程(Functional Programming):使用高阶函数,例如函数用其他函数作为参数。

响应式编程(Reactive Programming):关注于数据流和变化传播。

4. ReactiveCocoa操作须知

  • 所有的信号(RACSignal)都可以进行操作处理,因为所有操作方法都定义在RACStream.h中,因此只要继承RACStream就有了操作处理方法。

ReactiveCocoa操作思想

  • 运用的是Hook(钩子)思想,Hook是一种用于改变API(应用程序编程接口:方法)执行结果的技术.
  • Hook用处:截获API调用的技术。
  • Hook原理:在每次调用一个API返回结果之前,先执行你自己的方法,改变结果的输出。
时间: 2024-11-08 16:17:52

ReactiveCocoa学习总结(1)的相关文章

响应式编程框架ReactiveCocoa学习——框架概览

这篇博客将会继续翻译RAC的官方文档Framework Overview. 主要是对RAC这和框架进行概览的介绍和学习.同时也可以参考我前面的两篇翻译<响应式编程框架ReactiveCocoa学习--基本操作符><响应式编程框架ReactiveCocoa介绍与入门>.其中ReactiveCocoa的Github官方地址为 https://github.com/ReactiveCocoa/ReactiveCocoa . 这篇文档包括了RAC中的对不同组件的高层描述,并解释如何进行结合

iOS开发ReactiveCocoa学习笔记(-)

学习 RAC 我们首先要了解 RAC 都有哪些类 RACSignal RACSubject RACSequence RACMulticastConnection RACCommand 在学习的时候写了一个小 demo 来分别介绍每个类的作用,gitHub 地址: https://github.com/SummerHH/ReactiveCocoa.git demo 的目录结构如下 RAC学习起来的特点 学习起来比较难 团队开发的时候需要谨慎使用 团队代码需要不断的评审,保证团队中所有人代码的风格一

ReactiveCocoa学习总结

最近一直断断续续学习关于ReactiveCocoa的知识内容,对于它的一些基础内容将通过本文进行一个总结,主要是一些入门知识 一:RACSignal一些运用 @interface RACSignalTestViewController () @property(nonatomic,strong)RACSignal *mySignal,*secondSingl; @end -(RACSignal *)mySignal { if (!_mySignal) { _mySignal=[RACSignal

RAC(ReactiveCocoa)学习之道

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

iOS开发ReactiveCocoa学习笔记(四)

ReactiveCocoa常见操作方法介绍: demo地址:https://github.com/SummerHH/ReactiveCocoa.git p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #008400 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #008400; min-height: 13.0px }

iOS开发ReactiveCocoa学习笔记(二)

RAC 中常见的宏: 使用宏定义要单独导入 #import <RACEXTScope.h> 一. RAC(TARGET, [KEYPATH, [NIL_VALUE]]):用于给某个对象的某个属性绑定 只要文本框文字改变,就会修改label的文字 RAC(self.labelView,text) = _textField.rac_textSignal; 二. RACObserve(self, name):监听某个对象的某个属性,返回的是信号. [RACObserve(self.view, cen

ReactiveCocoa学习

ReactiveCocoa常见类 6.1RACSiganl:信号类,一般表示将来有数据传递,只要有数据改变,信号内部接收到数据,就会马上发出数据. 注意: 信号类(RACSiganl),只是表示当数据改变时,信号内部会发出数据,它本身不具备发送信号的能力,而是交给内部一个订阅者去发出. 默认一个信号都是冷信号,也就是值改变了,也不会触发,只有订阅了这个信号,这个信号才会变为热信号,值改变了才会触发. 如何订阅信号:调用信号RACSignal的subscribeNext就能订阅. RACSigan

ReactiveCocoa学习笔记

1. RACSignal使用步骤及底层实现 (1) 创建信号 (RACSignal底层实现:把didSubscribe保存到信号中,还不会触发.) createSignal的意义是,创建一个signal对象,并且把参数赋值给signal的名为didSubscribe的属性,这个block的参数是subscriber,返回RACDisposable. + (RACSignal *)createSignal:(RACDisposable * (^)(id<RACSubscriber> subscr

高大上函数响应式编程框架ReactiveCocoa学习笔记1 简介

原创文章,转载请声明出处哈. ReactiveCocoa函数响应式编程 一.简介 ReactiveCocoa(其简称为RAC)是函数响应式编程框架.RAC具有函数式编程和响应式编程的特性.它主要吸取了.Net的 Reactive Extensions的设计和实现. 函数式编程 (Functional Programming) 函数式编程也可以写N篇,它是完全不同于OO的编程模式,这里主要讲一下这个框架使用到的函数式思想. 1) 高阶函数:在函数式编程中,把函数当参数来回传递,而这个,说成术语,我

ReactiveCocoa 学习笔记

1 // 2 // RootViewController.m 3 // SimpleWeather 4 // 5 // Created by TBXark on 15-4-17. 6 // Copyright (c) 2015年 Ryan Nystrom. All rights reserved. 7 // 8 9 #import "RootViewController.h" 10 #import <ReactiveCocoa.h> 11 #import <TSMes