ReactiveCocoa之简介(一)

来源:互联网 发布:电脑上的编程软件 编辑:程序博客网 时间:2024/04/29 18:57

1.ReactiveCocoa简介


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


2.ReactiveCocoa作用


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


其实这些事件,都可以通过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版本的RAC2.5),可不加上use_frameworks


6.ReactiveCocoa常见类。


学习框架首要之处:个人认为先要搞清楚框架中常用的类,在RAC中最核心的类RACSiganl,搞定这个类就能用ReactiveCocoa开发了。

0 0