ReactiveCocoa框架到底是多强大

大家很多人不知道ReactiveCocoa是什么东东,今天主要跟大家谈谈我对ReactiveCocoa的理解和认识。

  1 ReactiveCocoa是什么?
  ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾。
  2.ReactiveCocoa到底有什么作用
(1)在我们iOS开发过程中,当某些事件响应的时候,需要处理某些业务逻辑,这些事件都用不同的方式来处理。
(2)比如按钮的点击使用action,ScrollView滚动使用delegate,属性值改变使用KVO等系统提供的方式。
(3)其实这些事件,都可以通过RAC处理
ReactiveCocoa为事件提供了很多处理方法,而且利用RAC处理事件很方便,可以把要处理的事情,和监听的事情的代码放在一起,这样非常方便我们管理,就不需要跳到对应的方法里。非常符合我们开发中高聚合,低耦合的思想。
3  ReactiveCocoa 几个常见的概念
1)Signal and Subscriber
这是RAC最核心的内容,这里我想用插头和插座来描述,插座是Signal,插头是Subscriber。想象某个遥远的星球,他们的电像某种物质一样被集中存储,且很珍贵。
Signal获取到数据后,会调用Subscriber的sendNext, sendComplete, sendError方法来传送数据给Subscriber,Subscriber自然也有方法来获取传过来的数据,如:[signal subscribeNext:error:completed]。这样只要没有sendComplete和sendError,新的值就会通过sendNext源源不断地传送过来,举个简单的例子:
    [RACObserve(self, names) subscribeNext:^(id x) {
        NSLog(@"names = %@",x);
    }];
    RACObserve使用了KVO来监听property的变化,只要names被自己或外部改变,block就会被执行。
    RAC(self.viewModel, username) = self.userNameT.rac_textSignal;
    RAC(self.viewModel, password) = self.passWordT.rac_textSignal;
    RAC(self.loginButtoon, enabled) = [_viewModel buttonIsValid];
    首先是左边的RAC(...),它的作用是将self.viewModel.username属性与右边的self.userNameT.rac_textSignal值绑定。也就是如果右边返回值为文本值,那么enabled就为该文本字符串。其中可以看到self.passWordT.rac_textSignal这么个东东,rac_textSignal是RAC为UITextField添加的category,只要usernameTextField的值有变化,这个值就会被返回(sendNext)。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图解AI

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值