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

本文深入探讨了iOS开发中数组与字典的实用操作方法,包括直接判断元素是否存在、使用枚举进行正反遍历并随时停止、以及在字典和字符串中的应用。详细介绍了在iOS8及以上版本中可用的方法,如`containsObject:`, `enumerateObjectsUsingBlock`, `enumerateObjectsWithOptions:NSEnumerationReverse`, `objectEnumerator`, `reverseObjectEnumerator`等,并举例说明其使用方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

  (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 allocinit];

    NSEnumerator *enume = [array objectEnumerator];

    id object;

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

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

    }


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

NSArray *array = [[NSArray allocinit];

    NSEnumerator *enume =[array reverseObjectEnumerator];

    id object;

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

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

    }



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

好吧,需要补充一下,上面有的方法是在IOS8以后才能用的,自己没注意,已经被坑了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值