OC中数组与字符串大致相通,有很多操作是一样的 。在此分享以下数组的常用操作,希望有所帮助。
NSArray *array1 = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];//数组初始化
NSArray *array2 = @[@"1", @"2", @"3"];
NSArray *arr = [[NSArray alloc] initWithArray:array1];
for (NSInteger i = 0; i < [array1 count]; i++) {
NSLog(@"index %ld has %@.",i, [array1 objectAtIndex:i]);//取数组元素
}
for (NSInteger i = 0; i < [array2 count]; i++) {
NSLog(@"index %ld has %@", i, array2[i]);
}
NSUInteger index = [array1 indexOfObject:@"one123"];//查找,返回第一个与之相同元素的下标,不存在返回NSNotFound
index = [array1 indexOfObject:@"one" inRange:NSMakeRange(1, 3)];//指定范围查找
NSUInteger count = [arr count]; //获取元素个数
//数组中的元素可以是多种类型,但不能存放基本的数据类型(如int float..),如果存放基本数据类型,要把它先转换成NSNumber的对象
//根据数组的索引取出相应的对象
id arry = [array1 objectAtIndex:1];//id为泛型 是指任意类型的对象,直到赋值的时候才能确定是类型
id arry1 = [array1 firstObject];//取第一个元素
id arry2 = [array1 lastObject];//取最后一个元素
NSArray *sub1 = [array1 subarrayWithRange:NSMakeRange(1, 3)];//此操作与字符串相同
NSMutableIndexSet *indexs = [NSMutableIndexSet indexSet];//列出所需要元素的下标清单
for (NSInteger i = 0; i < [array1 count]; i++)
{
if (i % 2 != 0)
{
[indexs addIndex:i]; //将要获取元素的下标写入清单
}
}
//将清单赋值给数组
NSArray *sub2 = [array1 objectsAtIndexes:indexs];//获取下标清单里的所有元素,返回一个元素集合(数组)
NSInteger maxLength = [array1[0] length];//获取元素的长度
//字符串切分成数组
NSString *string = @"oop:haha:hehe:heihei";
NSArray *chunks = [string componentsSeparatedByString:@":"];
//合并数组为字符串
string = [chunks componentsJoinedByString:@"*"];
//可变数组
NSMutableArray *array3 = [NSMutableArray arrayWithCapacity:17];
[array3 addObject:@"aa"];//末尾添加对象
[array3 insertObject:@"two" atIndex:1];
//关于清单操作与NSArray相同,增加以下内容
//删除清单中的元素
[array3 removeObjectsAtIndexes:indexs];
[array3 replaceObjectAtIndex:2 withObject:@"aaa"];//修改数组中指定下标的内容
[array3 replaceObjectsAtIndexes:indexs withObjects:arr];//arr中元素个数要与indexs相等
[array3 replaceObjectsInRange:NSMakeRange(1, 3) withObjectsFromArray:arr];//在指定范围内,修改数组中得内容。
[array3 insertObject:@"six" atIndex:5];//在数组指定下标位置处插入元素,切记不能越界,最大值为length
[array3 exchangeObjectAtIndex:1 withObjectAtIndex:3]; //交换数组中对应下标的内容
[array3 removeObjectAtIndex:1];//删除元素
[array3 removeAllObjects];//删除所有元素
[array3 sortUsingSelector:@selector(compare:)];//排序
for (NSString *strings in array1) {
NSLog(@"i found %@", strings); //快速枚举
}
NSEnumerator * enumer = [array1 objectEnumerator];//正序枚举器
id object;
while (object = [enumer nextObject]) { //通过枚举器遍历数组
NSLog(@"%@",object);
}