黑马程序员技术交流社区

标题: NSArray [打印本页]

作者: 苏子瞻201068    时间: 2015-9-19 10:39
标题: 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];
同时遍历和删除数组元素的时候,需要逆序;否则,会出现问题。
[url=][/url]
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);[url=][/url]


3、数组和字符串的联合使用
将一个字符串逆序输出
[url=][/url]
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:@" "]; //用指定的字符串,拼接字符串[url=][/url]







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2