ios开发之NSMutableArray
来源:互联网 发布:淘宝店铺装修模块 编辑:程序博客网 时间:2024/06/05 14:24
NSMutableArray用于可变数组操作。
初始化
- (instancetype)initWithCapacity:(NSUInteger)numItems
初始化容量。参数numItems为容量大小。
- (instancetype)init
初始化。等于调用[self initWithCapacity: 0];
- (instancetype)initWithObjects:(const ObjectType _Nonnull [_Nullable])objects count:(NSUInteger)cnt
根据对象序列初始化。
构造
+ (instancetype)arrayWithCapacity:(NSUInteger)numItems;
构造数组,初始化其容量。
添加
- (void)addObject:(ObjectType)anObject;
添加对象。如果参数anObject为nil,抛出异常。否则,添加进数组。
- (void)addObjectsFromArray:(NSArray<ObjectType> *)otherArray;
添加数组。如果参数otherArray为nil,抛出异常。否则,添加进数组。
插入
- (void)insertObject:(ObjectType)anObject atIndex:(NSUInteger)index;
插入对象。参数index为插入下标,参数anObject为插入对象。如果index大于数组长度,则抛出异常。
- (void)insertObjects:(NSArray<ObjectType> *)objects atIndexes:(NSIndexSet *)indexes;
插入对象数组。参数objects 为对象数组,参数indexes为索引集合。
NSIndexSet是一个唯一的,有序的,无符号整数的集合。
NSMutableArray *arr=[[[NSMutableArray alloc] initWithCapacity:10] autorelease];[arr addObject:@"000"];[arr addObject:@"111"];[arr addObject:@"222"];[arr addObject:@"333"];[arr addObject:@"444"];[arr addObject:@"555"];NSMutableIndexSet *set=[[[NSMutableIndexSet alloc] init] autorelease];[set addIndex:3];[set addIndex:1];NSArray *arr2=[[NSArray alloc] initWithObjects:@"aaa",@"bbb", nil];[arr insertObjects:arr2 atIndexes:set];NSLog(@"arr = %@",arr);
输出
2017-04-01 00:29:12.310 objc-base[1384:106249] arr = ( 000, aaa, 111, bbb, 222, 333, 444, 555)
删除
- (void)removeObjectAtIndex:(NSUInteger)index;
删除对象。参数index为删除的下标。
- (void)removeLastObject;
删除最后一个对象。
- (void)removeObjectsInRange:(NSRange)range;
删除区间内的对象。
- (void)removeAllObjects;
删除所有对象。
- (void)removeObjectsAtIndexes:(NSIndexSet *)indexes;
删除索引集合对应的对象。
NSIndexSet是一个唯一的,有序的,无符号整数的集合。
NSMutableArray *arr=[[[NSMutableArray alloc] initWithCapacity:10] autorelease];[arr addObject:@"000"];[arr addObject:@"111"];[arr addObject:@"222"];[arr addObject:@"333"];[arr addObject:@"444"];[arr addObject:@"555"];NSMutableIndexSet *set=[[[NSMutableIndexSet alloc] init] autorelease];[set addIndex:3];[set addIndex:1];[set addIndex:5];[arr removeObjectsAtIndexes:set];NSLog(@"arr = %@",arr);
输出
2017-03-31 23:54:23.759 objc-base[1271:100218] arr = ( 000, 222, 444)
- (void)removeObjectsFromIndices:(NSUInteger *)indices numIndices:(NSUInteger)cnt
删除索引序列对应的对象。
- (void)removeObjectIdenticalTo:(ObjectType)anObject inRange:(NSRange)range;
删除区间内相同的对象。判断相同的方法是比较对象值。
- (void)removeObjectIdenticalTo:(ObjectType)anObject;
删除相同的对象。判断相同的方法是比较对象值。
- (void)removeObject:(ObjectType)anObject inRange:(NSRange)range;
删除区间内相同的对象。判断相同的方法是isEqual。
- (void)removeObject:(ObjectType)anObject;
删除相同的对象。判断相同的方法是isEqual。
- (void)removeObjectsInArray:(NSArray<ObjectType> *)otherArray;
删除数组内的对象。
替换
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(ObjectType)anObject;
替换对象。参数index为替换的下标,参数anObject为替换的对象。如果index参数超出数组长度,则抛出异常。
- (void)replaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray<ObjectType> *)objects;
替换索引集合对应的对象。
- (void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray<ObjectType> *)otherArray;
替换区间内的对象。首先删除区间内的对象,然后插入数组。
NSMutableArray *arr=[[[NSMutableArray alloc] initWithCapacity:10] autorelease];[arr addObject:@"000"];[arr addObject:@"111"];[arr addObject:@"222"]; [arr addObject:@"333"];[arr addObject:@"444"];[arr addObject:@"555"];NSArray *arr2=[[NSArray alloc] initWithObjects:@"aaa",@"bbb", nil];[arr replaceObjectsInRange:NSMakeRange(1, 1) withObjectsFromArray:arr2];NSLog(@"arr = %@",arr);
输出
2017-04-01 02:37:17.701 objc-base[1437:108286] arr = ( 000, aaa, bbb, 222, 333, 444, 555)
- (void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray<ObjectType> *)otherArray range:(NSRange)otherRange;
替换区间内的对象。其实现为[self replaceObjectsInRange: aRange
withObjectsFromArray: [anArray subarrayWithRange: anotherRange]];
- (void)setObject:(ObjectType)obj atIndexedSubscript:(NSUInteger)idx
替换对象。若idx参数小于等于数组长度,则等同于replaceObjectAtIndex方法,若idx参数等于数组长度,则添加对象。
交换
- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2;
交换两个对象。idx1和idx2为交换的下标。
设置数组
- (void)setArray:(NSArray<ObjectType> *)otherArray;
设置数组。参数otherArray为设置的数组。
排序
- (void)sortUsingFunction:(NSInteger (NS_NOESCAPE *)(ObjectType, ObjectType, void * _Nullable))compare context:(nullable void *)context;
根据函数排序。
NSMutableArray *arr=[[[NSMutableArray alloc] initWithCapacity:10] autorelease];[arr addObject:@"000"];[arr addObject:@"111"];[arr addObject:@"555"];[arr addObject:@"333"];[arr addObject:@"444"];[arr addObject:@"222"];[arr sortUsingFunction:comp context:NULL];NSLog(@"arr = %@",arr);
NSUInteger comp(id obj1,id obj2,void *buf){ NSString *str1=obj1; NSString *str2=obj2; return [str1 compare:str2];}
输出
2017-04-01 03:08:04.375 objc-base[1487:112488] arr = ( 000, 111, 222, 333, 444, 555)
- (void)sortUsingSelector:(SEL)comparator;
根据方法排序。
NSMutableArray *arr=[[[NSMutableArray alloc] initWithCapacity:10] autorelease];[arr addObject:@"000"];[arr addObject:@"111"];[arr addObject:@"555"];[arr addObject:@"333"];[arr addObject:@"444"];[arr addObject:@"222"];[arr sortUsingSelector:@selector(compare:)];NSLog(@"arr = %@",arr);
- (void)sortUsingComparator:(NSComparator NS_NOESCAPE)cmptr
根据比较块排序。
NSMutableArray *arr=[[[NSMutableArray alloc] initWithCapacity:10] autorelease];[arr addObject:@"000"];[arr addObject:@"111"];[arr addObject:@"555"];[arr addObject:@"333"];[arr addObject:@"444"];[arr addObject:@"222"];[arr sortUsingComparator:^NSComparisonResult(id obj1, id obj2) { return [obj1 compare:obj2];}];NSLog(@"arr = %@",arr);
- (void)sortWithOptions:(NSSortOptions)opts usingComparator:(NSComparator NS_NOESCAPE)cmptr
根据比较块排序。
typedef NS_OPTIONS(NSUInteger, NSSortOptions) { NSSortConcurrent = (1UL << 0), //并行排序 NSSortStable = (1UL << 4), //串行排序};
文件相关
- (nullable NSMutableArray<ObjectType> *)initWithContentsOfFile:(NSString *)path;
根据文件初始化数组。
- (nullable NSMutableArray<ObjectType> *)initWithContentsOfURL:(NSURL *)url;
根据url初始化数组。
+ (nullable NSMutableArray<ObjectType> *)arrayWithContentsOfFile:(NSString *)path;
根据文件构造数组。
+ (nullable NSMutableArray<ObjectType> *)arrayWithContentsOfURL:(NSURL *)url;
根据url构造数组。
- ios开发之NSMutableArray
- IOS开发之----NSArray和NSMutableArray
- iOS开发之NSArray和NSMutableArray的用法
- IOS开发 NSArray NSEnumerator NSMutableArray
- IOS开发之旅-IOS常用数据结构NSArray、NSMutableArray、NSDictionary、NSMutableDictionary介绍
- iOS开发-Day18-OC NSArray&NSMutableArray
- IOS开发之OC篇(3)—— NSArray、NSMutableArray
- IOS学习之NSArray和NSMutableArray详解
- IOS SDK详解之NSArray/NSMutableArray
- 二、IOS SDK详解之NSArray/NSMutableArray
- IOS学习之NSMutableArray 的用法
- ios NSMutableArray
- iOS之Object-C基础编程之NSArray和NSMutableArray
- ios开发——NSArray与NSMutableArray相关
- 【iOS开发】NSMutableArray使用中忽视的问题
- 【学习ios之路:Objective-C】NSArray和NSMutableArray
- ios NSMutableArray 用法大全
- IOS NSArray,NSMutableArray
- modelSIM仿真时objects空白无显示问题
- 面向对象2
- 数字dfs注意问题
- php 初识抽象类
- 历任中国共产党主要领导人
- ios开发之NSMutableArray
- iframe框架中的页面刷新
- 1004.成绩排名(20)
- 开发项目步骤
- win7操作系统平台中安装ORACLE 10G所注意事项
- SSH整合(Spring4.3.7+Hibernate5.2.8+Struts2.5)
- 【LeetCode】130. Surrounded Regions
- fedora25桌面圖標
- 【JAVA秒会技术之玩转PDF】IText转PDF秒会