NSMutableArray基本用法
- NSMutableArray是NSArray的子类
- NSMutableArray是可变的,随时可以往里面添加、修改、删除元素
创建一个NSMutableArray
// 创建一个空数组
NSMutableArray *arrM1 = [NSMutableArray array];
// 创建数组,并且制定长度为10,也是空数组
NSMutableArray *arrM2 = [[NSMutableArray alloc] initWithCapacity:10];
// 创建一个数组,包含两个元素
NSMutableArray *arrM3 = [NSMutableArray arrayWithObjects:@"1", @"2", nil];
NSMutableArray *arrM4 = [[NSMutableArray alloc] initWithObjects:@"1", @"2", nil];
添加元素
[arrM1 addObject:@"2"];
// 将指定数组中的元素都取出来,放到arrM1中
// 并不是将整个数组当做一个元素添加到arrM1中
[arrM1 addObjectsFromArray:@[@"q", @"f"]];
// 下面这种方法是将整个数组当做一个元素添加到arrM1中
[arrM1 addObject:@[@"d", @"f"]];
插入元素
[arrM1 insertObject:@"cc" atIndex:1];
NSRange range = NSMakeRange(2, 2);
NSIndexSet *set = [NSIndexSet indexSetWithIndexesInRange:range];
// 插入一组数据,需要制定数组需要插入的位置和插入多少
[arrM1 insertObjects:@[@"111", @"bbb"] atIndexes:set];
获取元素
[arrM1 objectAtIndex:1];
arrM1[1];
替换元素
arrM1[0] = @"111";
// 替换index位置上的元素
[arrM1 replaceObjectAtIndex:1 withObject:@"tt"];
NSMutableArray *arrM = [NSMutableArray arrayWithObjects:@"1", @"2", @"3",@"4",@"5",@"6", nil];
// 替换range指定位置上的元素,将后面的数组中的元素逐个全部插入
[arrM replaceObjectsInRange:NSMakeRange(1, 2) withObjectsFromArray:@[@"q",@"d",@"r"]];
NSLog(@"%@",arrM);// 输出(1,q,d,r,4,5,6)
删除元素
// 删除index位置上的元素
[arrM1 removeObjectAtIndex:1];
// 删除最后一个元素
[arrM1 removeLastObject];
// 删除所有元素
[arrM1 removeAllObjects];
// 删除对应的元素
[arrM1 removeObject:@"111"];
// 删除range指定的元素
[arrM1 removeObjectsInRange:NSMakeRange(1, 1)];
交换元素
// 交换index为1和2位置上的元素
[arrM1 exchangeObjectAtIndex:1 withObjectAtIndex:2];
错误用法
// 使用@[]创建的是不可变数组NSArray
// 当调用NSMutableArray特有的方法的时候,将会出错
NSMutableArray *arrM = @[@"1",@"2",@"3"];