object-c中的集合

集合大致分为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

你可能感兴趣的:(object-c中的集合)