博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

OC基础数据类型-NSArray

Posted on 2013-09-25 17:24  GISerYang  阅读(1038)  评论(0编辑  收藏  举报

1、数组的初始化

1 NSArray *array = [[NSArray alloc] initWithObjects:@"One", @"Two", @"Three", @"Four", nil];

数组的元素可以是任意的对象,不局限于字符串;
数组中装有元素的地址;

1 NSLog(@"%@", array);    //打印数组,实际上是打印数据的每一个对象。因为数组重写的Description方法

 

遍历数组中的对象
方法1:枚举器法

1 NSEnumerator *enumerator = [array objectEnumerator];
2 id obj;
3 while (obj = [enumerator nextObject]) {
4     NSLog(@"%@", obj);
5 }

方法2:快速枚举法

1 for(id obj in array){
2     NSLog(@"%@", obj);
3 }

方法3:使用i值遍历

1 NSUInteger length = [array count]; //返回数组元素的个数
2 obj = [array objectAtIndex:2]; //返回单个元素的地址
3 NSInteger i;
4 for(i = 0; i<[array count];i++){
5     NSLog(@"%@", [array objectAtIndex:i]);
6 }

 

2、可变数组

 

1 NSMutableArray *array = [[NSMutableArray alloc] init];
2 //往可变数组中添加元素
3 [array addObject:@"one"];
4 [array addObject:@"two"];
5 [array addObject:@"three"];

交换两个数组的位置

1 [array exchangeObjectAtIndex:0 withObjectAtIndex:2];

删除元素,remove

1 [array removeObject:@"one"];
2 [array removeObjectAtIndex:1];
3 [array removeAllObjects];

 同时遍历和删除数组元素的时候,需要逆序;否则,会出现问题。

1 NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"one",@"two",@"three", nil];
2 //逆序
3 NSEnumerator *enumerator = [array reverseObjectEnumerator];
4 NSString *str;
5 while (str = [enumerator nextObject]) {
6     [array removeLastObject];
7     NSLog(@"%@",str);
8 }
9 NSLog(@"%@",array);

 

3、数组和字符串的联合使用

将一个字符串逆序输出

1 NSString *str = @"I am a so bad man";
2 NSArray *array = [str componentsSeparatedByString:@" "]; //用空格分割字符串
3 NSMutableArray *mutableArray = [[NSMutableArray alloc] init];
4 NSEnumerator *enumerator = [array reverseObjectEnumerator];
5 NSString *obj;
6 while (obj = [enumerator nextObject]) {
7     [mutableArray addObject:obj];
8 }
9 NSString *newStr = [mutableArray componentsJoinedByString:@" "]; //用指定的字符串,拼接字符串

 

结题!!!