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);

时间: 2024-10-11 12:03:03

ReactiveCocoa有关集合类的使用的相关文章

ReactiveCocoa学习

ReactiveCocoa常见类 6.1RACSiganl:信号类,一般表示将来有数据传递,只要有数据改变,信号内部接收到数据,就会马上发出数据. 注意: 信号类(RACSiganl),只是表示当数据改变时,信号内部会发出数据,它本身不具备发送信号的能力,而是交给内部一个订阅者去发出. 默认一个信号都是冷信号,也就是值改变了,也不会触发,只有订阅了这个信号,这个信号才会变为热信号,值改变了才会触发. 如何订阅信号:调用信号RACSignal的subscribeNext就能订阅. RACSigan

ReactiveCocoa概念解释篇

1.ReactiveCocoa简介 ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾. 2.ReactiveCocoa作用 在我们iOS开发过程中,经常会响应某些事件来处理某些业务逻辑,例如按钮的点击,上下拉刷新,网络请求,属性的变化(通过KVO)或者用户位置的变化(通过CoreLocation).但是这些事件都用不同的方式来处理,比如action.delegate.KVO.

使用ReactiveCocoa实现iOS平台响应式编程

使用ReactiveCocoa实现iOS平台响应式编程 ReactiveCocoa和响应式编程 在说ReactiveCocoa之前,先要介绍一下FRP(Functional Reactive Programming,响应式编程),在维基百科中有这样一个例子介绍: 在命令式编程环境中,a = b + c 表示将表达式的结果赋给a,而之后改变b或c的值不会影响a.但在响应式编程中,a的值会随着b或c的更新而更新. Excel就是响应式编程的一个例子.单元格可以包含字面值或类似"=B1+C1″的公式,

IOS ReactiveCocoa

一 前提: 在iOS开发过程中,当某些事件响应时,需处理的某些业务逻辑 Eg. 按钮点击:action ScrollView滚动:delegate 属性值改变:KVO ReactiveCocoa为事件提供了很多的处理方法,而且利用RAC处理事件很方便,可以把要处理的事件和监听代码放在一起,这样便于管理,不需要跳到对应的方法中,非常符合高聚合,低耦合的思想 二 ReactiveCocoa整体结构介绍: 1 信号源(事件流)RACStream 2 订阅者 RACSubscriber:在使用-subs

1个小时学会ReactiveCocoa基本使用

来源:朱凯奇 链接:http://www.jianshu.com/p/5d966074741a 1.ReactiveCocoa简介 ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾. 2.ReactiveCocoa作用 在我们iOS开发过程中,当某些事件响应的时候,需要处理某些业务逻辑,这些事件都用不同的方式来处理. 比如按钮的点击使用action,使用delegate,属性

小学生笔记之ReactiveCocoa入门

一.响应式编程范式FRP FRP,全称为Functional Reactive Programming,是一种响应变化的编程范式,最近几年比较火,大概的理解就像这样: 当a的值或者b的值发生变化时,c的值会自动响应a的值或b的值变化的信号,自动更正自己的值,类似这种编程思想就称为FRP. FRP提供了一种信号机制来实现这样的效果,通过信号来记录值的变化.信号可以被叠加.分割或合并.通过对信号的组合,就不需要去监听某个值或事件. 二.ReactiveCocoa介绍 ReactiveCocoa是gi

【转】最快让你上手ReactiveCocoa之基础篇

前言 很多blog都说ReactiveCocoa好用,然后各种秀自己如何灵活运用ReactiveCocoa,但是感觉真正缺少的是一篇如何学习ReactiveCocoa的文章,小编看了很多篇都没看出怎么使用ReactiveCocoa,于是决定自己写一遍关于学习ReactiveCocoa的文章,本文主要针对如何从零开始学习ReactiveCocoa,这里非常感谢3个人(支点的雷纯锋,camera360的宋潘,以及我的小学弟何宗柱(我爱科技)),在我研究ReactiveCocoa对我的帮助.如果喜欢我

最快让你上手ReactiveCocoa之基础篇

前言 很多blog都说ReactiveCocoa好用,然后各种秀自己如何灵活运用ReactiveCocoa,但是感觉真正缺少的是一篇如何学习ReactiveCocoa的文章,小编看了很多篇都没看出怎么使用ReactiveCocoa,于是决定自己写一遍关于学习ReactiveCocoa的文章,本文主要针对如何从零开始学习ReactiveCocoa,这里非常感谢3个人(支点的雷纯锋,camera360的宋潘,以及我的小学弟何宗柱(我爱科技)),在我研究ReactiveCocoa对我的帮助.如果喜欢我

ReactiveCocoa 使用3

前言 很多blog都说ReactiveCocoa好用,然后各种秀自己如何灵活运用ReactiveCocoa,但是感觉真正缺少的是一篇如何学习ReactiveCocoa的文章,小编看了很多篇都没看出怎么使用ReactiveCocoa,于是决定自己写一遍关于学习ReactiveCocoa的文章,本文主要针对如何从零开始学习ReactiveCocoa,这里非常感谢3个人(支点的雷纯锋,camera360的宋潘,以及我的小学弟何宗柱(我爱科技)),在我研究ReactiveCocoa对我的帮助. 如果喜欢