objective c中的数组跟简单操作(四)
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?
- #import?<Foundation/Foundation.h>??
- ??
- int?main(int?argc,?const?char?*?argv[])??
- {??
- ??
- ????@autoreleasepool?{??
- ????????//数组可以一次性添加完全,以nil作为结尾标志。??
- ????????NSArray?*array?=[NSArray?arrayWithObjects:@"DANCER",@"holy",?nil];??
- ????????//如果要添加空的话可以用以下方法??
- ????????NSArray?*array1=[NSArray?arrayWithObjects:@"dancer",[NSNull?null],?nil];??
- ????????//同字符串一样,可以建立可变更的数组,并设置一个初始量。??
- ????????NSMutableArray?*array2=[NSMutableArray?arrayWithCapacity:50];??
- ????????//下面可以动态添加数组元素??
- ????????[array2?addObject:@"holy"];??
- ????????[array2?addObject:@"dancer"];??
- ????????[array2?addObject:@"hoho"];??
- ????????//合并字符串数组??
- ????????NSString?*str?=?[array2?componentsJoinedByString:@"|"];??
- ????????NSLog(str);??
- ????????//字符串切割成数组??
- ????????NSArray?*array3=[str?componentsSeparatedByString:@"|"];??
- ????????NSLog(@"%@",array3);??
- ????????//可变数组元素删除??
- ????????[array2?removeObjectAtIndex:1];??
- ????????NSLog(@"%@",array2);??
- ??????????
- ??????????
- ??????????
- ??????????
- ????}??
- ????return?0;??
- }??

?
?
NSArray可以放一切数据,除了C中的基本数据类型,C中的一些基本元素我们可以用NSNumber类来包装,类似java中的装箱,另外还有一些struct类型的数据我们也可以用NSNumber类的父类NSValue来进行包装,包装成NSValue的对象再将其放入数组中。具体使用方法看代码:
?
?
[plain]?view plaincopy?
- #import?<Foundation/Foundation.h>??
- ??
- int?main(int?argc,?const?char?*?argv[])??
- {??
- ??
- ????@autoreleasepool?{??
- ????????NSMutableArray?*array?=?[NSMutableArray?arrayWithCapacity:50];??
- ????????int?age=5;??
- ????????char?c='c';??
- ????????float?f=3.14;??
- ????????NSRect?rect?=NSMakeRect(1,?2,?3,?4);??
- ????????NSNumber?*myAge?=?[NSNumber?numberWithInt:age];??
- ????????NSNumber?*myC?=?[NSNumber?numberWithChar:c];??
- ????????NSNumber?*myF=?[NSNumber?numberWithFloat:f];??
- ????????NSValue?*value?=?[NSValue?valueWithRect:rect];??
- ????????[array?addObject:myAge];??
- ????????[array?addObject:myC];??
- ????????[array?addObject:myF];??
- ????????[array?addObject:value];??
- ????????NSLog(@"%@",array);??
- ????}??
- ????return?0;??
- }??
?

?
Cocoa提供了好几种方法进行数组的迭代,如上所示,我们直接用%@可以输出数组的详细信息,也可以使用以下方法将其元素分别取出:
?
[plain]?view plaincopy?
- #import?<Foundation/Foundation.h>??
- ??
- int?main(int?argc,?const?char?*?argv[])??
- {??
- ??
- ????@autoreleasepool?{??
- ????????NSMutableArray?*array?=?[NSMutableArray?arrayWithCapacity:50];??
- ????????[array?addObject:@"a"];??
- ????????[array?addObject:@"b"];??
- ????????[array?addObject:@"c"];??
- ????????[array?addObject:@"d"];??
- ????????NSLog(@"%@",array);//以大括号形式输出数组内容??
- ????????//第一种迭代方法??
- ????????for(int?i=0;i<[array?count];i++)??
- ????????{??
- ????????????NSLog(@"%@",[array?objectAtIndex:i]);??
- ????????}??
- ????????//第二种迭代方法??
- ????????id?ob;??
- ????????NSEnumerator?*enumerator?=?[array?objectEnumerator];//实现一个迭代器??
- ????????while(ob=[enumerator?nextObject])??
- ????????{??
- ????????????NSLog(@"%@",ob);??
- ????????}??
- ????????//第三种最简单的for?in迭代方法??
- ????????id?oc;??
- ????????for?(oc?in?array)?{??
- ????????????NSLog(@"%@",oc);??
- ????????}??
- ????}??
- ????return?0;??
- }??
?

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