与 NSString 类似,NSArray 是不可变的。一旦创建了一个 NSArray 的实例,将无法改变数组。您可以修改数组元素的内容,但是不能修改数组本身,如增加条目、删除条目、排序等。因此,当确信不需要修改数组时,应该使用 NSArray 类。
NSMutableArray 是 NSArray 的一个子类,因此您可以在任何使用 NSArray 的位置使用 NSMutableArray。
除了包含在 NSArray 中的方法,NSMutableArray 还提供了修改数组的方法。其中包括:
addObject:
和 insertObject:atIndex:
用于向数组添加对象
removeAllObjects、removeLastObject 和 removeObjectAtIndex: 用于从数组删除对象
replaceObjectAtIndex:withObject:用于替换数组中的某个对象
filterUsingPredicate:用于筛选数组
exchangeObjectAtIndex:withObjectAtIndex:、sortUsingComparator:和sortUsingFunction: context:用于重新排列数组中的元素
有一件事情必须记住的是:数组类 NSArray 和 NSMutableArray 仅能包含对象。因此,不能将 C 的标量数据类型,如 int、long 或者其他任何不是继承自 NSObject 的类型插入 NSArray 或 NSMutableArray。