ReactiveCocoa - study】的更多相关文章

//KVO值监控,当alertTip改变时调用, filter对alertTip值进行过滤,此处当alertTip存在而长度不为0时,执行suscribeNext方法,弹出提示 [[RACObserve(self, alertTip) filter:^BOOL(NSString * value) { return value.length != 0 && value; }] subscribeNext:^(NSString * tip) { Alert(tip); }]; RAC(self…
最近工作比较忙,但还是出来更新博客了,今天给大家分享一些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…
1.Plan your time carefully. Make a list of your weekly tasks.Then make a schedule or chart of your time.Fill in committed time such as eating,sleeping,meeting,classes,etc. Then decide on good ,regular times for studying.Be sure to set aside enough ti…
(整个关于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.…
(整个关于ReactiveCocoa的代码工程可以在https://github.com/qianhongqiang/QHQReactive下载) 上面抽丝剥茧的把最主要的信号机制给分离开了.但在RAC中各种操作也是必不可少的,一些复杂的操作符也是有一些基础操作拼接组合而来,有点搭积木的味道. 那我沿着之前的思路,写一些简单的操作符是如何实现的. 操作符之concat(拼接) concat 使用示例 QHQSignal *demoOriginSignal = [QHQSignal createS…
ReactiveCocoa常见类 6.1RACSiganl:信号类,一般表示将来有数据传递,只要有数据改变,信号内部接收到数据,就会马上发出数据. 注意: 信号类(RACSiganl),只是表示当数据改变时,信号内部会发出数据,它本身不具备发送信号的能力,而是交给内部一个订阅者去发出. 默认一个信号都是冷信号,也就是值改变了,也不会触发,只有订阅了这个信号,这个信号才会变为热信号,值改变了才会触发. 如何订阅信号:调用信号RACSignal的subscribeNext就能订阅. RACSigan…
一 前提: 在iOS开发过程中,当某些事件响应时,需处理的某些业务逻辑 Eg. 按钮点击:action ScrollView滚动:delegate 属性值改变:KVO ReactiveCocoa为事件提供了很多的处理方法,而且利用RAC处理事件很方便,可以把要处理的事件和监听代码放在一起,这样便于管理,不需要跳到对应的方法中,非常符合高聚合,低耦合的思想 二 ReactiveCocoa整体结构介绍: 1 信号源(事件流)RACStream 2 订阅者 RACSubscriber:在使用-subs…
ReactiveCocoa是响应式编程(FRP)在iOS中的一个实现框架,它的开源地址为:https://github.com/ReactiveCocoa/ReactiveCocoa# :在网上看了几篇文章,感觉理论讲了很多,但是代码还是看不太懂,于是自己把它github文档上的一些使用的经典示例实现了一下,项目中有需要时可以直接搬过去用,用的熟练了再读源码也比较容易理解. 例1. 监听对象的成员变量变化,当成员变量值被改变时,触发做一些事情. 这种情况其实就是IOS KVO机制使用的场景,使用…
作为一名iOS开发者, 你写的每一行代码几乎都是对某些事件的反馈:点击button.接收到网络信息. 一个属性的改变(通过KVO监测) 或者 通过CoreLocation监听用户所在位置的变化 以上等等都是很好的例子.然而,这些事件都有不同的编码方式,如: action.delegate.KVO.回调等.ReactiveCocoa为事件定义了标准的接口,从而可以使用一些基本工具来更容易的连接.过滤和组合. UIControl+BlocksKit 刚开始以为实现action的方法也是链式编程的一部…
首先,使用CocoaPods集成(注意:由于ReactiveCocoa需要iOS8.0,并且是与swift混编的,所以Podfile文件要写成platform :ios, '8.0' 和 use_frameworks!),单集成没问题,但项目里用到SSKeychain,只要用到use_frameworks!总是报SSKeychain重复,把SSKeychain摘出来不用cocoaPods管理也是不行. 于是用第二套方案:GitHub上官方提供的方法: To add RAC to your app…
1.Cocoapods导入ReactiveCocoa: use_frameworks! target 'RACDemo' do pod 'ReactiveObjC', '~> 2.1.0' end 不懂得可以看这个链接: http://www.tuicool.com/articles/Qju6fme 2.输出文本内容操作: // // ViewController.m // RACDemo // // Created by 思 彭 on 17/1/4. // Copyright © 2017年…
这是对官方教程的补充 To add RAC to your application: Add the ReactiveCocoa repository as a submodule of your application's repository. 首先你得有个git,给自己的工程创建一个git $ git submodule add https://github.com/ReactiveCocoa/ReactiveCocoa.git external/ReactiveCocoa $ git a…
前言 由于时间的问题,暂且只更新这么多了,后续还会持续更新本文<最快让你上手ReactiveCocoa之进阶篇>,目前只是简短的介绍了些RAC核心的一些方法,后续还需要加上MVVM+ReactiveCocoa实战开发.如果喜欢我的文章,可以关注我,微博:袁峥Seemygo,欢迎交流.也可以来小码哥,了解下我们的iOS培训课程.之后还会更新 1.ReactiveCocoa常见操作方法介绍. 1.1 ReactiveCocoa操作须知 所有的信号(RACSignal)都可以进行操作处理,因为所有操…
上一个项目使用到了ReactiveCocoa+MVVM+AFNetworking+FMDB框架设计,从最初的尝试,到后来不断思考和学习,现在对这样一个整体设计还是有了一定了理解与心得.在此与大家分享下. 本文将不再过多的描述ReactiveCocoa.MVVM.FMDB的使用细节.关于ReactiveCocoa,我有一篇实用案例的博客: http://www.brighttj.com/ios/ios-reactivecocoa-utility-demo.html 文章介绍的更多的是我对这个框架设…
最近一直断断续续学习关于ReactiveCocoa的知识内容,对于它的一些基础内容将通过本文进行一个总结,主要是一些入门知识 一:RACSignal一些运用 @interface RACSignalTestViewController () @property(nonatomic,strong)RACSignal *mySignal,*secondSingl; @end -(RACSignal *)mySignal { if (!_mySignal) { _mySignal=[RACSignal…
记录一些MVVM文章中关于ReactiveCocoa的代码: 实例一:带有分页的文章列表,根据文章类别过滤出文章的列表,可以进入文章详细页面 1:YFBlogListViewModel 首先了解关于列表的ViewModel的代码内容: #import <Foundation/Foundation.h> #import <ReactiveCocoa.h> @class YFCategoryArticleListModel; /** * 文章列表的视图模型. */ @interface…
引用网络上一些实例的代码,针对ReactiveCocoa的运用可以更加有帮助: 1:跟AF结合时的写法,返回RACSignal - (RACSignal *)fetchQuestionWithTag:(NSString *)tag { NSString *relativeURL = [NSString stringWithFormat:@"http://api.stackexchange.com/2.1/questions/?site=stackoverflow&order=desc&a…
本文记录一些关于学习ReactiveCocoa基础知识内容,对于ReactiveCocoa相关的概念如果不了解可以网上搜索:RACSignal有很多方法可以来订阅不同的事件类型,ReactiveCocoa框架使用category来为很多基本UIKit控件添加signal.本文有收集一些网上其它文章的实例跟内容: 一:先创建页面布局(准备阶段) @interface ViewController () @property(strong,nonatomic)UITextField *nameText…
These days I study the RSA Algorithm. It is a little complex, but not very. Also, my study has not finished. There remains many other things to do. E.g. Program to realise RSA; Use Applications with RSA Study other encrypt algorithms ... Lattest News…
Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 229 的学习笔记. Machine Learning Algorithms Study Notes 系列文章介绍 3 Learning Theory 3.1 Regularization and model selection 模型选择问题:对于一个学习问题,可以有多种模型选择.比如要拟合一组样本点,…
Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 229 的学习笔记. Machine Learning Algorithms Study Notes 系列文章介绍 2    Supervised Learning    3 2.1    Perceptron Learning Algorithm (PLA)    3 2.1.1    PLA --…
Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 目 录 1    Introduction    1 1.1    What is Machine Learning    1 1.2    学习心得和笔记的框架    1 2    Supervised Learning    3 2.1    Perceptron Learning Algorithm (PLA)    3 2.1.1    PLA -- "知…