码迷,mamicode.com
首页 > 其他好文 > 详细

ReactiveCocoa有关集合类的使用

时间:2017-08-01 19:15:05      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:sign   atomic   log   integer   set   cti   number   元组   ret   

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有关集合类的使用

标签:sign   atomic   log   integer   set   cti   number   元组   ret   

原文地址:http://www.cnblogs.com/today2013/p/7269744.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!