您的位置:首页 > Web前端 > React

ReactiveCocoa之简介(一)

2016-05-23 09:51 260 查看
1.ReactiveCocoa简介

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

2.ReactiveCocoa作用

在我们iOS开发过程中,经常会响应某些事件来处理某些业务逻辑,例如按钮的点击,上下拉刷新,网络请求,属性的变化(通过KVO)或者用户位置的变化(通过CoreLocation)。但是这些事件都用不同的方式来处理,比如action、delegate、KVO、callback等。

其实这些事件,都可以通过RAC处理,ReactiveCocoa为事件提供了很多处理方法,而且利用RAC处理事件很方便,可以把要处理的事情,和监听的事情的代码放在一起,这样非常方便我们管理,就不需要跳到对应的方法里。非常符合我们开发中`高聚合,低耦合`的思想。

3.编程思想

在开发中我们也不能太依赖于某个框架,否则这个框架不更新了,导致项目后期没办法维护,比如之前Facebook提供的`Three20框架`,在当时也是神器,但是后来不更新了,也就没什么人用了。因此我感觉学习一个框架,还是有必要了解它的`编程思想`。

先简单介绍下目前咱们已知的`编程思想`。

3.1 `面向过程`:处理事情以过程为核心,一步一步的实现。

3.2 `面向对象`:万物皆对象

3.3 `链式编程思想`:是将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,使代码可读性好。a(1).b(2).c(3)

* `链式编程特点`:方法的返回值是block,block必须有返回值(本身对象),block参数(需要操作的值)

* `代表`:masonry框架。

* `练习一`:模仿masonry,写一个加法计算器,练习链式编程思想。

3.4 `响应式编程思想`:不需要考虑调用顺序,只需要知道考虑结果,类似于蝴蝶效应,产生一个事件,会影响很多东西,这些事件像流一样的传播出去,然后影响结果,借用面向对象的一句话,万物皆是流。

* `代表`:KVO运用。

* `练习二`:KVO底层实现。

3.5 `函数式编程思想`:是把操作尽量写成一系列嵌套的函数或者方法调用。

* `函数式编程特点`:每个方法必须有返回值(本身对象),把函数或者Block当做参数,block参数(需要操作的值)block返回值(操作结果)

* `代表`:ReactiveCocoa。

* `练习三`:用函数式编程实现,写一个加法计算器,并且加法计算器自带判断是否等于某个值.

4.ReactiveCocoa编程思想
ReactiveCocoa结合了几种编程风格:

`函数式编程(Functional Programming)`

`响应式编程(Reactive Programming)`

所以,你可能听说过ReactiveCocoa被描述为函数响应式编程(FRP)框架。

以后使用RAC解决问题,就不需要考虑调用顺序,直接考虑结果,把每一次操作都写成一系列嵌套的方法中,使代码高聚合,方便管理。

### 5.如何导入ReactiveCocoa框架
通常都会使用CocoaPods(用于管理第三方框架的插件)帮助我们导入。

PS:CocoaPods教程(http://code4app.com/article/cocoapods-install-usage)

`练习四`:创建一个新的工程,演示下,框架的导入。

`注意`:
* podfile如果只描述pod 'ReactiveCocoa', '~> 4.0.2-alpha-1',会导入不成功
* 报错信息
* 需要在podfile加上use_frameworks,重新pod install
才能导入成功。
PS:个人建议先研究纯OC版本的RAC(2.5),可不加上use_frameworks

6.ReactiveCocoa常见类。

学习框架首要之处:个人认为先要搞清楚框架中常用的类,在RAC中最核心的类RACSiganl,搞定这个类就能用ReactiveCocoa开发了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: