首页 > 代码库 > NSMutableArray的使用

NSMutableArray的使用

NSMutableArray是可变的NSArray,是NSArray的子类,可以随意的添加或者删除元素.

 

创建NSMutableArray

  • + (id)arrayWithCapacity:(NSUInteger)numItems
  • - (id)initWithCapacity:(NSUInteger)numItems

也可以使用创建NSArray的方法来创建NSMutableArray

NSMutableArray添加元素

  • - (void)setArray:(NSArray *)otherArray //设置集合元素
  • - (void)addObject:(id)anObject //添加一个元素
  • - (void)addObjectsFromArray:(NSArray *)otherArray //添加otherArray的全部元素到集合中
  • - (void)insertObject:(id)anObject atIndex:(NSUInteger)index //在index位置插入一个元素
  • - (void)insertObjects:(NSArray *)objects atIndexes:(NSIndexSet *)indexes //在indexes指定的位置分别插入objects中的元素

当一个元素被加到集合时,会执行一次retain操作;当一个元素从集合中移除时,会执行一次release操作;当集合被销毁时(调用了dealloc),集合里的所有元素都会执行一次release操作(这个原则还适用于其他集合:NSDictionary/NSSet等).

NSMutableArray删除元素

  • - (void) removeLastObject  //删除最后一个元素 
  • - (void)removeAllObjects //删除所有的元素
  • - (void)removeObjectAtIndex:(NSUInteger)index //删除index位置的元素
  • - (void)removeObjectsAtIndexs:(NSIndexSet *)indexes //删除indexes位置的所有元素
  • - (void)removeObject:(id)anObject //删除特定的元素
  • - (void)removeObject:(id)anObject inRange:(NSRange)range //在range范围内查找特定的元素进行删除
  • - (void)removeObjectsInArray:(NSArray *)otherArray //删除同时存在于otherArray和当前集合中的所有元素
  • - (void)removeObjectsInRange:(NSRange)range //删除range范围内的所有元素

NSMutableArray替换元素

  • - (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject //用anObject替换index位置对应的元素
  • - (void)replaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray *)objects //用objects中的元素分别替换indexes对应位置的元素
  • - (void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray range:(NSRange)otherRange //用otherArray中otherRange范围内的元素替换当前集合range范围内的元素
  • - (void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray //用otherArray中的元素替换当前集合range范围内的元素
  • - (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2 //交换idx1和idx2位置的元素

NSMutableArray排序

  • - (void)sortUsingDescriptors:(NSArray *)sortDescriptors
  • - (void)sortUsingComparator:(NSComparator)cmptr
  • - (void)sortUsingSelector:(SEL)comparator

用法参考NSArray的排序