NSArray是不可变的数组集合,而在平时开发中,这个满足不了需求,所以在OC中还有对应的可变的NSArray,顾名思义,可变即可增删改查。
关键字:NSMutableArray
- NSMutableArray的创建
- NSMutableArray元素添加
- NSMutableArray数据移除
- NSMutableArray元素值替换
- NSMutableArray数据遍历
- NSMutableArray数据排序
- NSMutableArray数据写入写出
NSMutableArray的创建
- arrayWithObject;
- arrayWithObjects;
这个三个都可以创建一个NSMutableArray并且初始化赋值。
观看以上事例代码很容易看出和NSArray创建是一样的,只不过是类名不一样。
NSMutableArray元素添加
- addObject(id)添加单个数据元;
- addObjectsFromArray(array’)批量添加,把其他的array数据添加进来;
- insertObject id atIndex index插入一个值,在下标为index的地方;
- insertObjects:ns_array atIndexes:indexs批量插入数据在某个范围;
NSMutableArray数据移除
- removeObject :id根据数据对象移除;
- removeObjectAtIndex :index根据下标移除数据;
- removeObject:id inRange:array_range在某个范围里面移除某个元素;
- removeObjectsAtIndexes:removeObjectsAtIndexes,批量移除数据根据下标合集;
NSMutableArray元素值替换
- replaceObjectAtIndex:index withObject:id
根据下标来替换数据,index下标,id值 - replaceObjectsAtIndexes:set withObjects:ars
根据下标集合批量替换值,set–》NSIndexSet(下标集合),ars–》NSArray(替换的值);
NSMutableArray数据遍历
- 普通for循环
- foreach循环
- block代码块遍历
NSMutableArray数据数据排序
- sortUsingSelector:@selector(compare:) 排序和NSArray一样的
这里的排序和NSArray通用的,可以自定义筛选器selector,具体看上一张NSArray;
NSMutableArray数据写入写出
- writeToFile:path atomically:YES 把数组数组写出去,path文件路径,YES是否遵守原子性;
- arrayWithContentsOfFile:path 把文件中的数据读入数组中,path文件路径;
总结:
其实NSMutableArray用法和NSArray差不多,只不过多了移除和添加替换值的一些操作方法,也和java中的List比较相似。在这其实很明显,NSString有相对应的NSMutableString,NSArray有相对应的NSMutableArray,这样比较好记,对比下就能知道了。