//字典 NSDictionary * dict = @{@"account":@"aaa", @"name":@"modi", @"age":@18}; //转换成集合 [dict.rac_sequence.signal subscribeNext:^(id x) { //RACTupleUnpack 用来解析元组 //宏里面的参数 传须要解析出来的变量名 //= 右边 放须要解析的元组 RACTupleUnpack(NSString * key,NSString * value) = x; NSLog(@"%@ = %@",key,value); }];
解析打印:git
它能够用来解析元组,宏里面的参数传须要解析出来的变量名,= 右边放须要解析的元组(x)。github
下面是文档中的示例:数组
NSArray * arr = @[@"123",@"456",@1]; //链式 [arr.rac_sequence.signal subscribeNext:^(id x) { NSLog(@"%@",x); }];
解析打印:atom
NSArray * arr = @[@"123",@"456",@1]; //元组 RACTuple * tuple = [RACTuple tupleWithObjectsFromArray:arr]; NSString * str = tuple[0]; NSLog(@"%@",str);
解析打印:spa
//plist bundlePath NSString * filePath = [[NSBundle mainBundle] pathForResource:@"flags.plist" ofType:nil]; //读取plist NSArray * dictArr = [NSArray arrayWithContentsOfFile:filePath]; NSLog(@"读取到的数据 %@",dictArr);
读取到的数据,即字典数组:设计
@interface Flag : NSObject @property (nonatomic, strong) NSString * name; @property (nonatomic, strong) NSString * icon; + (instancetype)flagWithDict:(NSDictionary *)dict; @end
+ (instancetype)flagWithDict:(NSDictionary *)dict{ Flag * f = [[Flag alloc]init]; [f setValuesForKeysWithDictionary:dict]; return f; }
//基本用法 NSMutableArray * arr = [NSMutableArray array]; [dictArr.rac_sequence.signal subscribeNext:^(id x) { //遍历元素 Flag * flag = [Flag flagWithDict:x]; [arr addObject:flag]; }]; NSLog(@"基本用法:%@",arr);
该方法能够将集合中全部的元素映射成一个新的对象,即将plist文件中的字典数组转化为Flag对象的数组。code
//高级用法 //把集合中全部元素映射成一个新的对象 NSArray * arr = [[dictArr.rac_sequence map:^id(id value) { //集合中的元素 //id 返回对象就是映射的值 return [Flag flagWithDict:value]; }] array]; NSLog(@"高级用法:%@",arr);
解析结果打印:对象
就这样咱们很方便的就把字典数组转化为了对象数组。文档
github:get