ReactiveCocoa有关集合类的使用
Sequences 集合 表示一个不可变的序列值且不能包含空值,
1.实现NSArray的快速遍历
NSArray *numbers = @[@1, @2, @3, @4, @5, @6];
//通过rac_sequence来获取Signal
RACSignal *signal = numbers.rac_sequence.signal;
[signal subscribeNext:^(id x) {
//子线程异步请求
NSLog(@"%@", x);
}];
2.实现NSSet的快速遍历
NSSet *set = [NSSet setWithObjects:@"A", @"B", @"C", @"D", @"E", @"F", nil];
RACSignal *setSignal = set.rac_sequence.signal;
[setSignal subscribeNext:^(id _Nullable x) {
NSLog(@"%@", x);
}];
3.实现NSDictionary的快速遍历
NSDictionary *dict = @{@"key1":@"Hello", @"key2":@"World"};
RACSignal *dictSignal = dict.rac_sequence.signal;
[dictSignal subscribeNext:^(id x) {
NSLog(@"%@", x);
//可以看到x打印出来的是RACTuple对象 RACTuple 元组,使用RACTupleUnpack进行解包
RACTupleUnpack(NSString *key, NSString *value) = x;
NSLog(@"key = %@, value = %@", key, value);
}];
4.针对项目中经常遇到的结构复杂的数据结构中的相同模型转成model
使用rac中的map进行型号传递时的转换
@interface Person : NSObject
@property(nonatomic, strong)NSString *name;
@property(nonatomic, assign)NSInteger sex;
+ (instancetype)personWithDict:(NSDictionary *)dict;
@end
NSArray *personArray = @[@{@"name":@"小张", @"sex":@1}, @{@"name":@"小王", @"sex":@2}];
NSArray *resultArray = [[dictSignal2 map:^id(id value) {
return [Person personWithDict:value];
}] toArray];
NSLog(@"resultArray = %@", resultArray);
ReactiveCocoa有关集合类的使用的更多相关文章
- 最快让你上手ReactiveCocoa之基础篇
前言 很多blog都说ReactiveCocoa好用,然后各种秀自己如何灵活运用ReactiveCocoa,但是感觉真正缺少的是一篇如何学习ReactiveCocoa的文章,这里介绍一下. 1.Rea ...
- ReactiveCocoa学习
ReactiveCocoa常见类 6.1RACSiganl:信号类,一般表示将来有数据传递,只要有数据改变,信号内部接收到数据,就会马上发出数据. 注意: 信号类(RACSiganl),只是表示当数据 ...
- IOS ReactiveCocoa
一 前提: 在iOS开发过程中,当某些事件响应时,需处理的某些业务逻辑 Eg. 按钮点击:action ScrollView滚动:delegate 属性值改变:KVO ReactiveCocoa为事件 ...
- ReactiveCocoa学习总结
最近一直断断续续学习关于ReactiveCocoa的知识内容,对于它的一些基础内容将通过本文进行一个总结,主要是一些入门知识 一:RACSignal一些运用 @interface RACSignalT ...
- ReactiveCocoa基础知识内容
本文记录一些关于学习ReactiveCocoa基础知识内容,对于ReactiveCocoa相关的概念如果不了解可以网上搜索:RACSignal有很多方法可以来订阅不同的事件类型,ReactiveCoc ...
- ReactiveCocoa入门教程:第一部分
http://www.cocoachina.com/ios/20150123/10994.html 本文翻译自RayWenderlich,原文:ReactiveCocoa Tutorial--The ...
- 1个小时学会ReactiveCocoa基本使用
来源:朱凯奇 链接:http://www.jianshu.com/p/5d966074741a 1.ReactiveCocoa简介 ReactiveCocoa(简称为RAC),是由Github开源的一 ...
- 使用ReactiveCocoa实现iOS平台响应式编程
使用ReactiveCocoa实现iOS平台响应式编程 ReactiveCocoa和响应式编程 在说ReactiveCocoa之前,先要介绍一下FRP(Functional Reactive Prog ...
- [转]使用ReactiveCocoa实现iOS平台响应式编程
原文:http://www.itiger.me/?p=38 使用ReactiveCocoa实现iOS平台响应式编程 ReactiveCocoa和响应式编程 在说ReactiveCocoa之前,先要介绍 ...
随机推荐
- Solr集群搭建
SolrCloud需要solr基于zookeeper部署,zookeeper是一个集群管理软件,由于SolrCloud需要由多台服务器组成.由zookeeper来进行协调管理.Zookeeper是一个 ...
- div中内容无法自动换行问题
.l-text{ padding:.3em .5em; width:67%; height: auto; /*height:1.3em;*/ border:.1em #2294C3 solid; bo ...
- 10分钟轻松学会python turtle绘图
 1. 画布(canvas) 1.1 相关函数: 2. 画笔 2.1 画笔的状态 2.2 画笔的属性 2.3 绘图命令 3. 命令详解 4. 绘图举例 4.1 太阳花 4.2 绘制小蟒蛇 4.3 绘 ...
- json字符串转成数组
$hour_23 json_decode($hour_23,true);//(第二个参数为true的时候)
- JQuery事件机制笔记
一.事件绑定及移除 1.bind() bind()为每个匹配的元素绑定一个或多个事件处理函数: 语法:bind(event,fn)//不能给未来元素添加事件: bind(event,fn); bind ...
- JQuery——banner旋转木马效果
博主在浏览网页时无意间发现了一种banner图的轮播方式--像旋转木马一样的轮播方式,博主感觉非常新颖独特,经过查阅资料,观看某课网教程总算搞了出来的,其原理主要利用了JQuery代码实现,好了不多说 ...
- 最全的CSS浏览器兼容问题(转至http://68design.net/Web-Guide/HTMLCSS/37154-1.html)
最全的CSS浏览器兼容问题 CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下.对于web2 ...
- diy toy: image auto-handler
备忘之:) config.xml <?xml version="1.0" encoding="utf-8"?> <config> < ...
- HDOJ 2209 贪心
翻纸牌游戏 Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- 使用pycurl探测web服务质量
1:pycurl模块的安装方法 easy_install pycurl pip install pycurl 2:示例代码如下,是在python3下实现的,如若使用python2稍作修改即可 # -* ...