一、NSMutableArray是NSArray的子类 1.所以,NSMutableArray仍然是1个数组,具备NSArray数组的特点: 1)只能存储OC对象 2)每1个元素都是紧密相连的 3)元素的类型固定 2.NSMutableArray数组的元素,可以动态的新增和删除 NSMutableArray相对于父类做的扩展 就是NSMutableArray数组的元素,可以动态的新增和删除 其他的用法均与NSArray一致 所以:NSArray数组一旦创建,其元素的个数就固定,无法新增删除 而这个NSMutableArray数组呢,元素可以新增,可以删除 其他用法和父类一样 二、NSMutableArray数组的创建 1.NSMutableArray *arr1 = [NSMutableArray new]; 这个时候,这个数组的长度是几,0, 有没有意义,有,因为我们后面可以动态的新增 2.NSMutableArray *arr2 = [NSMutableArray alloc] init]; 3.NSMutableArray *arr3 = [NSMutableArray array]; 这样创建出来的数组元素,数组的元素是0,仍然是有意义的,因为我们可以动态的新增和删除元素 4.NSMutableArray *arr4 = [NSMutableArray arrayWithObjects:(nonnull id),…,nil]; NSMutableArray *arr4 = [NSMutableArray arrayWithObjects:@“jack”,@“rose”,@“lili”,nil]; 这个时候,创建这个arr4数组,里面有几个元素,3个 难道永远只能3个吗,不是的,我们是不是可以新增啊 也可以使用这样的方式来创建可变数组对象 这个数组的元素,可以新增和删除 5.NSMutableArray *arr5 = @[@“jack”,@“rose”,@“lili”]; 这样写可以吗? 不可以,这个是个什么对象,@[@“jack”,@“rose”,@“lili”]; NSArray对象 这个指针是什么指针,NSMutableArray *arr5 NSMutableArray指针,子类指针 6.最容易犯的错误:这样写是不可以的 NSMutableArray *arr5 = @[@“jack”,@“rose”,@“lili”,nil]; 因为这是一个NSArray对象,我们说过嘛,这是NSArray对象的简写方式嘛