oc- 数组的简单操作



在objective c中,除了C的数组使用方法,Cocoa还为我们提供了一个NSArray类,使用该类可以简单方便的存储对象,该类同NSMutableString一样,还有一个子类,用于处理可变数组:NSMutableArray.类中的方法简单直了,很容易理解,下面只做一些简单的示范:

[plain]  view plain copy
  1. #import <Foundation/Foundation.h>  
  2.   
  3. int main(int argc, const char * argv[])  
  4. {  
  5.   
  6.     @autoreleasepool {  
  7.         //数组可以一次性添加完全,以nil作为结尾标志。  
  8.         NSArray *array =[NSArray arrayWithObjects:@"DANCER",@"holy", nil];  
  9.         //如果要添加空的话可以用以下方法  
  10.         NSArray *array1=[NSArray arrayWithObjects:@"dancer",[NSNull null], nil];  
  11.         //同字符串一样,可以建立可变更的数组,并设置一个初始量。  
  12.         NSMutableArray *array2=[NSMutableArray arrayWithCapacity:50];  
  13.         //下面可以动态添加数组元素  
  14.         [array2 addObject:@"holy"];  
  15.         [array2 addObject:@"dancer"];  
  16.         [array2 addObject:@"hoho"];  
  17.         //合并字符串数组  
  18.         NSString *str = [array2 componentsJoinedByString:@"|"];  
  19.         NSLog(str);  
  20.         //字符串切割成数组  
  21.         NSArray *array3=[str componentsSeparatedByString:@"|"];  
  22.         NSLog(@"%@",array3);  
  23.         //可变数组元素删除  
  24.         [array2 removeObjectAtIndex:1];  
  25.         NSLog(@"%@",array2);  
  26.           
  27.           
  28.           
  29.           
  30.     }  
  31.     return 0;  
  32. }  



NSArray可以放一切数据,除了C中的基本数据类型,C中的一些基本元素我们可以用NSNumber类来包装,类似java中的装箱,另外还有一些struct类型的数据我们也可以用NSNumber类的父类NSValue来进行包装,包装成NSValue的对象再将其放入数组中。具体使用方法看代码:


[plain]  view plain copy
  1. #import <Foundation/Foundation.h>  
  2.   
  3. int main(int argc, const char * argv[])  
  4. {  
  5.   
  6.     @autoreleasepool {  
  7.         NSMutableArray *array = [NSMutableArray arrayWithCapacity:50];  
  8.         int age=5;  
  9.         char c='c';  
  10.         float f=3.14;  
  11.         NSRect rect =NSMakeRect(1, 2, 3, 4);  
  12.         NSNumber *myAge = [NSNumber numberWithInt:age];  
  13.         NSNumber *myC = [NSNumber numberWithChar:c];  
  14.         NSNumber *myF= [NSNumber numberWithFloat:f];  
  15.         NSValue *value = [NSValue valueWithRect:rect];  
  16.         [array addObject:myAge];  
  17.         [array addObject:myC];  
  18.         [array addObject:myF];  
  19.         [array addObject:value];  
  20.         NSLog(@"%@",array);  
  21.     }  
  22.     return 0;  
  23. }  




Cocoa提供了好几种方法进行数组的迭代,如上所示,我们直接用%@可以输出数组的详细信息,也可以使用以下方法将其元素分别取出:

[plain]  view plain copy
  1. #import <Foundation/Foundation.h>  
  2.   
  3. int main(int argc, const char * argv[])  
  4. {  
  5.   
  6.     @autoreleasepool {  
  7.         NSMutableArray *array = [NSMutableArray arrayWithCapacity:50];  
  8.         [array addObject:@"a"];  
  9.         [array addObject:@"b"];  
  10.         [array addObject:@"c"];  
  11.         [array addObject:@"d"];  
  12.         NSLog(@"%@",array);//以大括号形式输出数组内容  
  13.         //第一种迭代方法  
  14.         for(int i=0;i<[array count];i++)  
  15.         {  
  16.             NSLog(@"%@",[array objectAtIndex:i]);  
  17.         }  
  18.         //第二种迭代方法  
  19.         id ob;  
  20.         NSEnumerator *enumerator = [array objectEnumerator];//实现一个迭代器  
  21.         while(ob=[enumerator nextObject])  
  22.         {  
  23.             NSLog(@"%@",ob);  
  24.         }  
  25.         //第三种最简单的for in迭代方法  
  26.         id oc;  
  27.         for (oc in array) {  
  28.             NSLog(@"%@",oc);  
  29.         }  
  30.     }  
  31.     return 0;  
  32. }  



holydancer原创,如需转载,请在显要位置注明:

转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/7346221


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值