OC中数组的四种遍历方式

针对OC中数组遍历的几种方式我们来通过下面一个简单的程序来进行说明:

#import<Foundation/Foundation.h>


int main(int argc,const char * argv[])

{

    @autoreleasepool

    {

        NSString *t1 = @"Hello";

        NSString *t2 = @"welcome";

        NSString *t3 = @"everyone";


        //创建一个可变数组将这三个对象添加到数组中去;

        NSMutableArray * arr1 = [NSMutableArrayarrayWithCapacity:10];

        [arr1 addObject:t1];

        [arr1 addObject:t2];

        [arr1 addObject:t3];



        //第一种方式:就像C语言中的for循环一样直接循环遍历;

        for(int i = 0; i < [arr1 count]; i++)

        {

            NSLog(@"%@", [arr1 objectAtIndex:i]);

        }


        

        //第二种方式:这种方式相对简单,其中object是一个id类型的对象;

        for(id object in arr1)

        {

            NSLog(@"%@", object);

        }

        


        //第三种方式:通过实现一个迭代器,相当于利用枚举进行遍历;

        id elem;

        NSEnumerator *en = [arr1 objectEnumerator];

        while(elem = [en nextObject])

        {

            NSLog(@"%@", elem);

        }

        


        //第四种方式:通过BLOCK块进行遍历,是OC中自带的一种方法;

        [arr1 enumerateObjectsUsingBlock:^(id obj, NSUInteger index, BOOL *stop)

         {

             NSLog(@"%d is %@", index, obj);

             *stop = NO;    //控制循环;

         }]; 

 

    }

    return 0;

}


程序运行结果如下:

2015-08-19 16:39:20.889 TestArray[2283:303] Hello

2015-08-19 16:39:20.899 TestArray[2283:303] welcome

2015-08-19 16:39:20.900 TestArray[2283:303] everyone

2015-08-19 16:39:20.901 TestArray[2283:303] Hello

2015-08-19 16:39:20.902 TestArray[2283:303] welcome

2015-08-19 16:39:20.903 TestArray[2283:303] everyone

2015-08-19 16:39:20.949 TestArray[2283:303] Hello

2015-08-19 16:39:20.951 TestArray[2283:303] welcome

2015-08-19 16:39:20.952 TestArray[2283:303] everyone

2015-08-19 16:39:20.954 TestArray[2283:303] 0 is Hello

2015-08-19 16:39:20.956 TestArray[2283:303] 1 is welcome

2015-08-19 16:39:20.957 TestArray[2283:303] 2 is everyone




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值