葵花宝典

NSArray数组

2017-01-22  本文已影响42人  lym不解释

数组转字符串

#pragma mark - 数组转字符串
    NSArray *arr = @[@"1",@"2",@"3"];
    NSString *str = [arr componentsJoinedByString:@","];
    NSLog(@"%@", str);
    

字符串转数组

#pragma mark - 字符串转数组
    NSString *str1 = @"张三, 李四, 王五";
    NSArray *array1 = [str1 componentsSeparatedByString:@","];
    NSLog(@"%@", array1);

数组进行遍历

RAC

[array.rac_sequence.signal subscribeNext:^(id  _Nullable x) {
                    
                }];

OC


1. for...in...{ }

2.  [array enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
                    
                }];

filter 过滤 利用谓词根据一定条件从一个数组中过滤数据

     NSPredicated谓词的使用
关键字:
     1.比较: >,<,==,>=,<=,!=
     2.范围: IN、BETWEEN
     3.字符串相关:CONTAINS(包含)、 BEGINSWITH(以某个字符串开头)、ENDSWITH(以某个字符串结束)
     NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"name CONTAINS[cd] %@",text];
     4.通配符: LIKE
     NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"name LIKE[cd] '*er'"];
     5.正则匹配: MATCHES
     NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"name MATCHES 'Z.+e$'"];
     6.组合查询 AND
    NSArray * arr1 = @[@2,@3,@4,@5];
    NSArray * arr2 = @[@4,@3,@2,@1];
    
    NSPredicate * predicate = [NSPredicate predicateWithFormat:@"SELF > 4",arr1];
    NSArray *result = [arr1 filteredArrayUsingPredicate:predicate];
    NSLog(@"arr1中大于4的数据:%@", result);
    
    NSPredicate * predicate2 = [NSPredicate predicateWithFormat:@"SELF BETWEEN {3, 5}",arr1];
    NSArray *result2 = [arr1 filteredArrayUsingPredicate:predicate2];
    NSLog(@"arr1中3-5的数据:%@", result2);
    
    NSPredicate * filterPredicate1 = [NSPredicate predicateWithFormat:@"NOT (SELF IN %@)",arr1];
    NSArray * filter1 = [arr2 filteredArrayUsingPredicate:filterPredicate1];
    NSLog(@"只在arr2中的数据:%@", filter1);
    
    NSPredicate * filterPredicate2 = [NSPredicate predicateWithFormat:@"NOT (SELF IN %@)",arr2];
    NSArray * filter2 = [arr1 filteredArrayUsingPredicate:filterPredicate2];
    NSLog(@"只在arr1中的数据:%@",filter2);
    
    NSMutableArray *array = [NSMutableArray arrayWithArray:filter1];
    [array addObjectsFromArray:filter2];
    NSLog(@"arr1、arr2中不同的数据:%@",array);

NSArray被遗忘的一些方法

上一篇下一篇

猜你喜欢

热点阅读