OC基础数据类型-NSArray

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:@" "]; //用指定的字符串,拼接字符串

 

结题!!!

你可能感兴趣的:(NSArray)