数组的基本概念
Foundation中的数组(NSArray,NSMutableArray)是一组有序的对象集合,通过索引下标获取到数组中的各个元素。与字符串相同,数组也有可变和不可变之分。此外,数组中不可以存放基本数据类型,只能存放类的实例(对象)。如若需要将基本数据类型、结构体放入数组中,需要通过NSNumber、NSValue进行数据的“封装”。
不可变数组——NSArray
数组的初始化
NSArray *firstArray = [NSArray arrayWithObject:@“one”];
//多个元素初始化时,注意以nil作为数组的结果。
NSArray *secondArray = [NSArray arrayWithObjects:@“one”,@“two”,nil];
NSArray *thirdArray = [NSArray arrayWithArray:secondArray];
NSArray *fourthArray = [NSArray arrayWithContentsOfFile:path];
数组的常用方法
NSArray *array = [NSArray arrayWithObjects:@“a”,@“b”,@“c”,nil];
//获取数组中的元素个数
NSInteger count = [array count];
//根据下表访问对象
NSString *firstObj = [array objectAtIndex:0];
//在原来的数组上追加对象,返回一个新的数组对象
NSArray *addArray = [array arrayByAddingObject:@“ddd”];
//用指定的字符串将数组中的元素连接起来
NSString *arrayStr = [array componentJoinedByString:@“,”];
//数组中是否包含某对象
BOOL isContain = [array containsObject:@“bbb”];
//查询指定对象在数组中的位置,如果没此元素,返回NSNotFound
NSInteger index = [array indexOfObject:@“ccc”];
//获取数组中最后一个元素
NSString *lastString = [array lastObject];
NSMutableArray *mutableArray1 = [NSMutableArray arrayWithObjects:@“One”,@“Two”,@“end”,@“Five”,nil];
//新增,插入,删除
NSLog(@“mutableArray1:%@“,mutableArray1);
[mutableArray1 addObject:@“Four”];
[mutableArray1 insertObject:@“Three” atIndex:2];
[mutableArray1 removeLastObject];
[mutableArray1 removeObject:@“end”];
[mutableArray1 removeObjectAtIndex:3];
[mutableArray1 addObject:@“Four”];
//删除一个数组中,另外一个数组中有的字符串
NSArray *deleteArray = [NSArray arrayWithObjects:@“One”,@“Two”,nil];
[mutableArray1 removeObjectsInArray:deleteArray];
NSLog(@“removeObjectInArray:%@”,mutableArray];
//替换指定的下标元素
[mutableArray replaceObjectAtIndex:0 withObject:@“replace”];
//移除所有对象
[mutableArray removeAllObjects];
//遍历数组的常用方法。 遍历性能低
NSArray *array = [NSArray arrayWithObjects:@"a",@"b",@"c",@"d",nil];
int length = [array count];
for(int i = 0 ;i < length ;i++){
NSString *element = [array objectAtIndex:i];
NSLog(@"%@",element);
}
//遍历数组的常用方法。 遍历性能高
for(NSString *string in array){
NSLog(@"found %@",string);
}
//当不确定数组元素的类型时,可以选择用id
for(id string in array){
NSLog(@"found %@",string);
}