[OC学习笔记]NSArray、NSMutableArray、NSValue方法

NSMutableArray是NSArray的子类,所以NSArray的方法NSMutableArray都可以使用

下面表中obj、obj1、obj2是任意对象

i为数组索引

selector是SEL类型的selector对象

size是一个NSUInteger整数(i也是此类型)

1.NSArray

取数据直接用下标取就可以

方法 描述
+(instancetype) arrayWithObjects: obj, obj1, obj2…nil 创建一个新的数组,obj,obj1,obj2是其元素
-(BOOL) containsObject: obj 确定数组中是否包含对象obj(使用isEqual:方法)
-(NSUInteger) count 数组中元素的个数
-(NSUInteger) indexOfObject: obj 第一个包含对象obj的元素索引号(使用isEqual:方法)
-(NSUInteger) indexOfObjectPassingTest: (BOOL(^)(id obj, NSUInteger idx, BOOL *stop)) block 传递每个对象obj(带有索引号idx)到区块block中,如果obj通过测试返回YES,未通过返回NO,设置变量指针stop为YES结束处理
-(id) lastObject 返回数组最后的对象
-(id) objectAtIndex: i 存储在数组i下标的对象
-(void) makeObjectsPerformSelector: (SEL) selector 将selector指示的消息发送给数组中的每个元素
-(void) enumerateObjectsUsingBlock: (void)(^)(id obj, NSUInteger idx, BOOL *stop)) block 通过块获取数组中的每个元素,包括对象obj和对应的索引号idx,如果obj通过测试返回YES,未通过返回NO,设置变量指针stop为YES结束处理
-(NSArray ) sortedArrayUsingSelector: (SEL) *selector 根据指定selector方法的比较器对数组进行排序
-(NSArray *) sortedArrayUsingComparator: (NSComparator) block 通过执行块区block对数组进行排序
-(BOOL) writeToFile: path atomically: (BOOL) flag 将数组写入指定的文件,如果flag为YES,则先创建一个临时文件

2.NSMutableArray

方法 描述
+(instancetype) array 创建一个空数组
+(instancetype) arrayWithCapacity: size 使用指定的初始size创建一个数组
-(instancetype) initWithCapacity: size 使用指定的初始size初始化新分配的数组
-(void) addObject: obj 将对象obj添加到数组的末尾
-(void) insertObject: obj atIndex: i 将对象obj插入数组的i位置
-(void) replaceObjectAtIndex: i withObject: obj 将数组中序列为i的对象用obj对象代替
-(void) removeObject: obj 从数组中删除所有的obj
-(void) removeObjectAtIndex: i 从数据中删除元素i,将序号为i+1的对象移至数组的结尾
-(void) sortUsingSelector: (SEL) selector 用selector指定的方法将数组排序
-(void) sortUsingComparator: (NSComparator) block 通过执行区块block对数组进行排序

3.NSValue

NSValue包装和展开方法

Typedef数据类型 描述 包装方法 展开方法
CGPoint x和y值组成的点 valueWithPoint pointValue
CGSize 宽和高组成的尺寸 valueWithSize sizeValue
CGRect 矩形包含的原点和尺寸 valueWithRect rectValue
NSRange 描述位置和大小的范围 valueWithRange rangeValue

将CGPoint包装后装入数组、从数组展开的例子

CGPoint myPoint;
NSValue *pointObj;
NSMutableArray *touchPoints = [NSMutableArray array];

myPoint.x = 100;
myPoint.y = 200;

pointObj = [NSValue valueWithPoint: myPoint];
[touchPoints addObject: pointObj];

// 展开
myPoint = [[touchPoints lastObject] pointValue];

你可能感兴趣的:(oc)