您的位置:首页 > 其它

数组中不常用却又好用的方法探索

2015-11-25 00:45 302 查看
博客事由:在开发静态库时,希望能够让自己的接口更加人性化以及实用价值更高,我需要用到一个数组,以及对数组元素是否存在的判断。

以往总是遍历所有元素,于是就想有没有一个方法能够直接判断某个元素是否存在于数组中,于是尝试之下果然发现还是有的。进而想更深层次的挖掘一下数组的一些实用的方法。

  (1)这个方法能够直接判断数组是否包含该元素

 

 NSArray *arr =@[@3,@4,@5,@8,@9,@10];
    
    if ([arrcontainsObject:@3])
    {
        NSLog(@"包含3");

        
    }else
    {
        NSLog(@"不包含3");
        
    }
(2)这个是利用枚举正遍历而且能够随时停止遍历

 [arr enumerateObjectsUsingBlock:^(id obj,NSUInteger idx,
BOOL *stop){
        
        NSLog(@"array is %d is %@", idx, obj);
        if (idx==3) {
            
            *stop = YES;
        }

        
    }];

(3)利用枚举的反遍历而且能够随时停止遍历

    [arr enumerateObjectsWithOptions:NSEnumerationReverseusingBlock:^(id
obj,NSUInteger idx, BOOL *stop){
        
        NSLog(@"array is %d is %@",idx, obj);
        if (idx==3) {
            
            *stop = YES;
        }
        
    }];
(4)利用枚举的正遍历(非Block)

 NSArray *array = [[NSArray alloc] init];

    NSEnumerator *enume = [array objectEnumerator];

    id object;

    while ((object = [enume nextObject])
!= nil) {

        NSLog(@"array is %@",
object);

    }

(5) 利用枚举的反遍历(非Block)

NSArray *array = [[NSArray alloc] init];

    NSEnumerator *enume =[array reverseObjectEnumerator];

    id object;

    while ((object = [enume nextObject])
!= nil) {

        NSLog(@"array is %@",
object);

    }

至于在字典中以及字符串中是否有这些实用的方法有待继续探索

好吧,需要补充一下,上面有的方法是在IOS8以后才能用的,自己没注意,已经被坑了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: