ReactiveCocoa(一)】的更多相关文章

最近工作比较忙,但还是出来更新博客了,今天给大家分享一些ReactiveCocoa以及MVVM的一些东西,干活还是比较足的.在之前发表过一篇博文,名字叫做<iOS开发之浅谈MVVM的架构设计与团队协作>,大体上讲的就是使用Block回调的方式实现MVVM的.在写上篇文章时也知道有ReactiveCocoa这个函数响应式编程的框架,并且有许多人用它来更好的实现MVVM.所以在上篇博客发表后,有些同行给评论建议看一下ReactiveCocoa的东西,所以就系统的看了一下ReactiveCocoa的…
ReactiveCocoa支持两种订阅方式,一种是冷订阅,一种是热订阅. 热订阅的特点: 1.不管有没有消息订阅着,发送者总会把消息发出去. 2.不管订阅者是什么时候订阅的,发送者总是会把相同的消息发给所有订阅者 冷订阅的特点: 跟热订阅的相反.冷订阅只会给订阅者发送一次消息,冷订阅使用的流(stream)跟热订阅使用的不一样. 热订阅:主动触发.      冷订阅:被动触发 RACSubject:ken能包含很多个subscriber, 一个订阅中只有一个subscribe 热订阅:积极型的,…
原文解释在这里http://cocoadocs.org/docsets/ReactiveCocoa/0.6.0/ 在标题Creating hot subscribables 底下 先贴原文: The easiest way to create hot subscribables is by using RACSubject. Subjects are subscribables you can manually control with -sendNext:, -sendError:, -sen…
前言 很多blog都说ReactiveCocoa好用,然后各种秀自己如何灵活运用ReactiveCocoa,但是感觉真正缺少的是一篇如何学习ReactiveCocoa的文章,这里介绍一下. 1.ReactiveCocoa简介 ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾. 2.ReactiveCocoa作用 在我们iOS开发过程中,当某些事件响应的时候,需要处理某些业务逻…
1. 替换Ruby镜像 我们想要使用CocoaPods来安装ReactiveCocoa.由于OS X上的Ruby镜像被墙了,感谢淘宝为我们提供了国内访问镜像. $ gem sources --remove https://rubygems.org/ $ gem sources -a http://ruby.taobao.org/ 2. 安装CocoaPods CocoaPods是第三方类库安装工具,开发必备.用到sudo可能需要输入本机管理员密码. sudo gem install cocoap…
(整个关于ReactiveCocoa的代码工程可以在https://github.com/qianhongqiang/QHQReactive下载) 在这篇博客中,我将把ReactiveCocoa中的擦作符做具体的介绍,附上对应的应用场景,是持续更新的.如果有的场景不合适,或者有更好的使用场景,可以留言,我会改进的. 拼接 - (RACSignal *)concat:(RACSignal *)signal; 拼接两个信号,合成的信号,在self发送sendCompleted后,发送新signal的…
(整个关于ReactiveCocoa的代码工程可以在https://github.com/qianhongqiang/QHQReactive下载) RAC为了实现优雅的信号绑定,可谓使尽浑身解数,不仅是这个,整个RAC中对宏的使用都很有学习价值.我这里简单简单的说明下,我们在实际开发中常用到的宏,有些宏我也没有研究的很透彻,就不班门弄斧了,大家可以参考下别的学习资料. 以下面的例子入手: RAC(self.noneDataTipView,hidden) = [RACSignal combineL…
(整个关于ReactiveCocoa的代码工程可以在https://github.com/qianhongqiang/QHQReactive下载) 好多天没写东西了,今天继续.主要讲解RAC如何于UI空间实现响应流的. 随手找个按钮响应的RAC实现作为示例,然后我们去做一个简单的实现 [[_HiddenBtn rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(id x) { _HiddenBtn.hid…
(整个关于ReactiveCocoa的代码工程可以在https://github.com/qianhongqiang/QHQReactive下载) 上一章节简要的说明了如何实现的热信号.但是像那么写,貌似不是非常优雅.这一章节我们会把冷热信号转换写的跟ReactiveCocoa一样优雅. ReactiveCocoa内部是如何实现冷热信号转换的呢?我们来看个例子 RACSignal *replayLazilySignal = [[RACSignal createSignal:^RACDisposa…
(整个关于ReactiveCocoa的代码工程可以在https://github.com/qianhongqiang/QHQReactive下载) 这一章节主要讨论信号的“冷”与“热” 在RAC的世界里,信号是有“冷”(被动passive)与“热”(主动active)之分的.而且一不小心,这就可能成为了严重的问题,具体可以参见案例http://tech.meituan.com/talk-about-reactivecocoas-cold-signal-and-hot-signal-part-2.…