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之前,先要介绍 ...
随机推荐
- 关于TAR ZXVF命令解释
分别是四个参数x : 从 tar 包中把文件提取出来z : 表示 tar 包是被 gzip 压缩过的,所以解压时需要用 gunzip 解压v : 显示详细信息f xxx.tar.gz : 指定被处理的 ...
- [转] 传说中的WCF
这个解决方案中包含两个项目,一个叫Server,另一个叫Client,天生一对. 1.启动VS 2010,推荐用2010以上版本(2012 RC版也行),因为越高版本越好用,最好Express的,不要 ...
- phpcms列表页内容如何替换?
以aboutus.html页面为例. 1.将aboutus.html重新命名为list-aboutus.html: 2.在后台页面,在栏目列表中将栏目列表页模板设置为 list-aboutus.htm ...
- Nginx+Keepalived 主备高可用 安装与配置
环境说明:操作系统:CentOS6.7 x86_64Nginx版本:nginx-1.9.7Keepalived版本:keepalived-1.2.24 主nginx + Keepalived :10. ...
- Sql_Case_When用法
http://wenku.baidu.com/link?url=XBnkUzGtiJFhTnQk5HbmdgndhVEYJdcfDEhSEIFeTRn9-41KMLf_49wKiydNCF-4g3Qi ...
- oracle 树形表结构查询 排序
oracle 树形表结构排序 select * from Table start with parentid is null connect by prior id=parentid order SI ...
- React 在服务端渲染的实现
原文地址:Server-Side React Rendering 原文作者:Roger Jin 译者:牧云云 React 在服务端渲染的实现 React是最受欢迎的客户端 JavaScript 框架, ...
- 如何为一个eclipse安装android环境
据说android已经不再支持android adt-bundle的开发环境了,所以如果继续使用的话,会不再更新 使用eclipse来安装android环境或者使用android studio 但是以 ...
- Android Studio 运行java程序
当我们装了Android Studio 学习安卓开发的时候,难免会要学习java,这时候,难道在重新装一个编译器吗?不需要,我们直接用 Android Studio 就可以. 1.新建一个空项目,选择 ...
- web前段学习2016.6.6
目前上网的方式:手机平板电脑移动端:智能手机.平板PC:电脑.笔记本运行在移动端的东西:APPios:object-candroid:javapc端的东西:桌面应用程序 c++ 我们上网的方式都是通过 ...