首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

objective c中的数组跟简单操作(四)

2013-10-27 
objective c中的数组和简单操作(四)holydancer原创,如需转载,请在显要位置注明:转自holydancer的CSDN专栏,

objective c中的数组和简单操作(四)

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

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

?

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

?

[plain]?view plaincopy?
  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. }??

objective c中的数组跟简单操作(四)

?

?

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

?

?

[plain]?view plaincopy?
  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. }??



?

objective c中的数组跟简单操作(四)

?

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

?

[plain]?view plaincopy?
  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. }??



?

objective c中的数组跟简单操作(四)

?

关键字:objective-c ,objective c , oc ,数组?

热点排行