//字典 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