NSArray操作
预备概念
NSRange:NSRange是一个结构体,其中location是一个从0开始的index,length表示长度。他们都是NSUInteger类型,因此取值不能为负数,否则崩溃。
常见方法使用
-
//截取从loc位置开始(包括loc位置处的元素)的len长度的数组.
-(NSArray<ObjectType> *)subarrayWithRange:(NSRange)range;
-
//在第loc(loc可为0)个元素处插入长度为len的一组对象.当loc == 0时,表示将这组对象插入到原数组的最前面.
-(void)insertObjects:(NSArray<ObjectType> *)objects atIndexes:(NSIndexSet *)indexes;
-
//从loc处的元素开始,移除len个元素.
-(void)removeObjectsInRange:(NSRange)range;
-
//反转数组
NSArray *myArr = [NSArray arrayWithObjects:@"xx5",@"xx4",@"xx3", nil]; NSLog(@"倒序前:%@",myArr); myArr = [[myArr reverseObjectEnumerator] allObjects]; NSLog(@"倒序后:%@",myArr);
举例
NSArray *arr = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"11",@"12",@"13",@"14",@"15",@"16",];
NSArray *arrs = [arr subarrayWithRange:NSMakeRange(1, arr.count -1)];//截取从loc位置开始(包括loc位置处的元素)的len长度的数组.
NSLog(@"arrs:%@",arrs);
NSMutableArray *mArr = [NSMutableArray arrayWithArray:arr];
[mArr insertObjects:arrs atIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, arrs.count)]];//在第loc(loc可为0)个元素处插入长度为len的一组对象.当loc == 0时,表示将这组对象插入到原数组的最前面.
NSLog(@"mArr:%@",mArr);
NSInteger index = 0;
[mArr removeObjectsInRange:NSMakeRange(index, mArr.count - index)];
NSLog(@"mArr:%@",mArr); //从loc处的元素开始,移除len个元素.
打印:
2016-01-28 14:05:07.130 数组的使用[19958:2166701] arrs:(
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16
)
2016-01-28 14:05:07.131 数组的使用[19958:2166701] mArr:(
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16
)
2016-01-28 14:05:07.131 数组的使用[19958:2166701] mArr:(
)