NSArray常见方法操作

NSArray操作

预备概念

NSRange:NSRange是一个结构体,其中location是一个从0开始的index,length表示长度。他们都是NSUInteger类型,因此取值不能为负数,否则崩溃。

常见方法使用
  1. //截取从loc位置开始(包括loc位置处的元素)的len长度的数组.

    -(NSArray<ObjectType> *)subarrayWithRange:(NSRange)range;

  2. //在第loc(loc可为0)个元素处插入长度为len的一组对象.当loc == 0时,表示将这组对象插入到原数组的最前面.

    -(void)insertObjects:(NSArray<ObjectType> *)objects atIndexes:(NSIndexSet *)indexes;

  3. //从loc处的元素开始,移除len个元素.

    -(void)removeObjectsInRange:(NSRange)range;

  4. //反转数组

    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:(
)

推荐阅读更多精彩内容