OC中数组的四种遍历方式

来源:互联网 发布:关键词搜索软件 编辑:程序博客网 时间:2024/05/21 10:50

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

#import<Foundation/Foundation.h>


int main(int argc,constchar * 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(@"%@", [arr1objectAtIndex:i]);

        }


        

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

        for(id objectin 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




0 0
原创粉丝点击