objective-c 语言 数组遍历的4种方式

 objective-c 语言 数组遍历的4种方式:1、普通for循环;2、快速for循环;3、特性block方法;4、枚举方法。

Blog类:
01 #import "Blog.h"
02 @implementation Blog
03  
04 +(Blog *)blog{
05     Blog * blog = [[Blog alloc] init];
06     return blog;
07 }
08  
09 -(Blog *)setBlogTitle:(NSString *)title andContent:(NSString *)content{
10     _title = title;
11     _content = content;
12     return self;
13 }
14  
15 -(NSString *)description{
16     return [NSString stringWithFormat:@"blog : title is \"%@\" , and content is \"%@\"", _title,_content ];
17 }
18  
19 -(void)dealloc{
20     NSLog(@"%@被销毁了",self.title);
21 }
22 @end

主函数:

01 #pragma mark Array数组的四种遍历方法
02 void testArray(){
03     Blog *blog1 = [[Blog blog] setBlogTitle:@"Love" andContent:@"I love you"];
04     Blog *blog2 = [[Blog blog] setBlogTitle:@"Friendship" andContent:@"you are my best friend"];
05     NSArray *array = [NSArray arrayWithObjects:@"hello",@"world",blog1,blog2, nil];
06      
07     //第一种遍历:普通for循环
08     long int count = [array count];
09     for (int i = 0 ; i < count; i++) {
10         NSLog(@"1遍历array: %zi-->%@",i,[array objectAtIndex:i]);
11     }
12      
13     //第二种遍历:快速for循环,需要有外变量i
14     int i = 0;
15     for (id obj in array) {
16         NSLog(@"2遍历array:%zi-->%@",i,[array objectAtIndex:i]);
17         i++;
18     }
19      
20     //第三种遍历:OC自带方法enumerateObjectsUsingBlock:
21      
22     //默认为正序遍历
23     [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
24         NSLog(@"3遍历array:%zi-->%@",idx,obj);
25     }];
26     //NSEnumerationReverse参数为倒序遍历
27     [array enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
28         NSLog(@"4倒序遍历array:%zi-->%@",idx,obj);
29     }];
30      
31     //第四种遍历:利用枚举
32     NSEnumerator *en = [array objectEnumerator];
33     id obj;
34     int j = 0 ;
35     while (obj = [en nextObject]) {
36         NSLog(@"5遍历array:%d-->%@",j,obj);
37         j++;
38     }
39 }
40 int main(int argc, const char * argv[])
41 {
42     @autoreleasepool {
43         testArray();
44     }
45     return 0;
46 }

结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值