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