objective c中的数组跟简单操作(四)
objective c中的数组和简单操作(四)
holydancer原创,如需转载,请在显要位置注明:
转自holydancer的****专栏,原文地址:http://blog.****.net/holydancer/article/details/7346221
在objective c中,除了C的数组使用方法,Cocoa还为我们提供了一个NSArray类,使用该类可以简单方便的存储对象,该类同NSMutableString一样,还有一个子类,用于处理可变数组:NSMutableArray.类中的方法简单直了,很容易理解,下面只做一些简单的示范:
- #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的对象再将其放入数组中。具体使用方法看代码:
- #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提供了好几种方法进行数组的迭代,如上所示,我们直接用%@可以输出数组的详细信息,也可以使用以下方法将其元素分别取出:
- #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 ,数组