免费开源的iOS开发学习平台

OC数组:2-NSMutableArray类

可变数组(NSMutableArray类),顾名思义即可以对数组内的元素数量进行增加、删除,同时也可以对存储元素的内容进行修改。由于NSMutableArray类是NSArray类的子类,因此NSArray类的方法和属性,NSMutableArray类都可以继承使用。

可变数组创建

可变数组在初始化时可以设置容量为任意值,在执行一系列插入删除等操作时数组会根据元素的数量自动改变容量大小。通常情况下,可变数组可以使用如下几种方式来初始化(实例化)。

  • 使用array方法。使用该方法时,不指定可变数组的容量,使用起来比较简单,也是我们通常使用的方法;

  • 使用arrayWithCapacity方法,类方法,需要提供数组的初始容量;

  • 使用initWithCapacity方法,实例方法,需要提供数组的初始容量;

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //初始化
        NSMutableArray *mArray1 = [NSMutableArray array];
        NSMutableArray *mArray2 = [NSMutableArray arrayWithCapacity:100];
        NSMutableArray *mArray3 = [[NSMutableArray alloc] initWithCapacity:100];
    }
    return 0;
}

可变数组的元素操作

与不可变数组相比,可变数组可以对其中的元素进行修改操作,常用的有如下几个。

  • 在数组末尾增加某个元素
- (void)addObject:(ObjectType)anObject;
  • 在指定位置增加元素
- (void)insertObject:(ObjectType)anObject atIndex:(NSUInteger)index;
  • 替换某个下标的元素
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(ObjectType)anObject;
  • 删除元素
- (void)removeObject:(ObjectType)anObject;
  • 删除指定下标的元素
- (void)removeObjectAtIndex:(NSUInteger)index;
  • 删除所有元素
- (void)removeAllObject;
  • 修改某个元素对象的值。我们可以使用赋值运算符直接更新数组中某个下标对象的值。
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //初始化
        NSMutableArray *mArray = [NSMutableArray arrayWithObjects:@"九九学院",@"99ios", nil];
        NSLog(@"初始状态下,数组中第一个对象的值:%@",mArray[0]);
        mArray[0] = @"www.99ios.com";
        NSLog(@"更新后,数组中第一个对象的值:%@",mArray[0]);

    }
    return 0;
}

运行结果:

示例代码

https://github.com/99ios/4.3.2