NSArray
NSArray是不可变的,而且只能储存Object-c对象。另外,数组的最后一个元素一定是nil,表示结束。
注:这些集合类只能收集cocoa对象(NSOjbect对象),如果想保存一些原始的C数据(例如,int, float, double, BOOL等),则需要将这些原始的C数据封装成NSNumber类型的,NSNumber对象是cocoa对象,可以被保存在集合类中。
图片里是帮助文档里的,也就是NSArray所有的方法,我打出来的是学过的,也是比较常用的方法。
一. 创建一个数组
这些都是类方法,创建形式大致相同:
NSArray *anArray = [NSString array];
NSArray *anArray2 = [NSArray arrayWithObject : @“老王”,nil ];
当然,你也可以使用实例方法创建数组,并且通常我们也是这样做的。
这些是初始化方法,所以应该用alloc创建NSArray对象:
NSArray *array = [[NSArray alloc] initWithObjects : @"1", @"2",nil];
最后一个数据必须是nil,表示数组结束。
二. 查询
数组是有序的,所以对于数组会有很多查询的操作:
- (BOOL) containsObject : (id)anObject 判断数组中是否包含给定元素
- (NSUInteger) count是比较常用的方法,它会返回数组中元素的数量
- (id) objectAtIndex : (NSUInteger) index 返回指定下标的数组元素
(在使用这个方法的时候 , 前面如果你要声明一个变量 , 那么这个变量应该是与元素类型相同
如: NSString *a = [xxx objectAtIndex : 1 ];
)
- (id) lastObject 返回数组最后一个元素。这是个很有趣也很有用的方法,正常情况下我们可以使用上面两个方法的组合来获得最后一个元素,但是当数组中没有元素的时候,传入0就会引起程序崩溃,使用这个方法则很好的解决了这个问题,它会返回一个 nil 。
三.数组中查找对象的方法
提供了非常多的方法来查找对象,应该是为了以后对数据的操作的时候使用的,现在先放在这,以后要用了就可以参考:
四. 给元素发送消息
- (void)makeObjectsPerformSelector : (SEL)aSelector
让数组中所有元素都执行选择器中的方法。
五. 数组的比较
- (id) firstObjectCommonWithArray :(NSArray *)anotherArray
返回两个数组中第一个相同的对象元素。
- (BOOL) isEqualToArray : (NSArray *)anotherArray
比较两个数组内容是否相同
六. 派生出新的数组
- (NSArray*)arrayByAddingObject : (id)anObject
在数组末尾加入一个新的对象形成新的数组,旧数组依然在,新数组是copy了旧的数组,再加上要加入的对象形成的。
七. 排序
- (NSArray *)sortedArrayUsingSelector : (SEL)aSelector
返回一个数组,该数组是旧数组的元素经过选择器排序后的新数组。
八. 数组转字符串
- (NSString *) componentsJoinedByString : (NSString *)separator
根据传入的分割符(separator),将数组转化成字符串并返回。
九. 创建一个描述
十. 收集路径
- pathsMatchingExtensions ;
十一. Key-Value 观察
十二. Key-Value 编码