集合大致分为NSArray/NSSet/NSDictionary类似于Java中的list set map
NSArray
NSArray提供了类方法和实例方法来创建NSArray,另种方式都需要传入基本数据类型,类方法以array开头,实例方法以init开头。
常见的几种实例化方法:
NSArray array---创建一个不包含任何元素的空NSArray
arrayWithContentsOfFile----读取文件内容以建立NSarray
arrayWithObject:/initWithObject-----创建包含指定元素的
arrayWithObjects:/initWithObjects----包含指定的N个元素的NSArray
@[];-------------创建包含括号内元素的NSArray
NSArray list;
[list objectAtIndex:0]----------0号位置的元素
[list lastObject]---------------最后位置元素
[list objectsAtIndexes:[NSIndexSet indexSetWithIndexsInRange:NSMakeRange(3,4)]]---------从索引为3开始的4个元素
[list indexOfObject]---------------得到下标
向数组后追加一个元素
向数组后追加两一个数组的元素
获取指定索引区间的元素
将集合元素写入文件
遍历集合中的元素
[list objectAtIndex:i];
list[i];
注:后一种方法只能在ios 5.0以上运行
可实现对集合元素整体调用方法
对NSArray的排序
sortedArrayUsingFunction:context:=============使用排序函数对集合排序
sortedArrayUsingSelector======================使用集合元素自身的方法对金河进行排序
sortedArrayUsingComparator==============使用代码块对集合元素进行排序
使用枚举器遍历NSArray集合元素
objectEnumerator------返回 集合的顺序枚举器
reverseObjectEnumerator-------返回集合的逆序枚举器
allObject-----获取所有元素
nexObject----获取下一个元素
快速枚举 类似于Java中for(object 0:list)
for(id object in list){}
NSMutableArray-------------------元素可变集合
list addObject:@""-------------集合最后添加一个元素
list addObjectFromarray:[NSArray arrayWithObjects:@"",@"",nil]];----------------集合最后添加多个元素
list insertObject:@""atIndex:2------------在指定位置插入元素
list insertObjects:{NSArray arrayWithObjects:@"",@"",nil]atIndexs:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(3,2)]];----指定位置插入多个元素
list removeLastObject-----删除最后元素
list removeObjectAtIndex:5-----------------删除下标5
list removeObjectsInRange:NSMakeRange(2,3)];
NSArray与kvc、kvo
setValue:forKey--------将该集合中所有元素的指定key对应属性或实例设置为value
valueForKey-----返回该集合所有元素指定key组成的集合对象
addObserver:forKeyPath:options:context: 为所有元素添加kvo监听器
addObserver:toObjectsAtIndexes:forKeyPath:options:contex:为集合中指定索引处的元素添加监听
removeObserver:fromObjectsAtIndexs:forKeyPath;---删除监听器
NSArray* array=@[[[User alloc] initWithName:@"sun" pass:@"123"],[[User alloc] initWithName:@"sun" pass:@"123"],[[User alloc] initWithName:@"sun" pass:@"123"],];
id list=[array valueForKey:@"name";-------name属性组成的集合
[array setValue:@"新名称" forKey:@"name"]
NSDictionary支持通过下标获取指定key对应的value