Foundation——集合类
一、 NSArray只能翻oc对象,不能放基本数据类型,为不可变数组。
1、不可变数组,你在定义它的时候,没有存放任何OC对象,那么它永远是空数组。
NSArray *array = [NSArray array];
2、数组最后的nil是数组的结束标记,并且oc数组不能存放空指针
NSArray *array = [NSArray arrayWithObjects:@“2”, @“2”,nil]; NSArray *array = @[“”,””,””];//C语言数组用的是大括
3、取得数组里面对象有两种方法
[array objectAtIndex:i];//面相对象方法 array[i];//编译器特性
4、快速遍历数组
1 for(id obj in Array){ 2 //缺点不知道第几次,他没循环一次,自动会复值给obj 3 NSLog(“%@“, obj); 4 //有一个方法是找出数组元素在数组中的位置 5 NSUInteger i = [array indexOfObject:obj]; 6 } 7 [array enumerateObjectsUseingBlock:^(id obj, NSUInteger idx,BOOL *stop){ 8 //obj就是每次取出来的对象 9 //如果想停止,则调用*stop = YES;stop是指针,*stop才是变量值。 10 }] 11 NSSoredDescriptor sortDescriptroWithKey:对象的成员变量 asceding:升序降序。 12 array sortedArrayUsingDescritptor:array];
二、判断一个路径是文件还是文件夹
1、单例模式,整个文件系统,公用一个文件管理
NSFileManger *mgr = [NSFileManager deaultManger];
2、判断文件的扩展名,如果是.m或.h文件才计算
NSStting *str =[path pathExtension];
3、判读一个路径里面试文件还是文件夹
1 BOOL dir = NO; 2 //程序执行完后,就会改变bool的值,返回值是传的路径是否存在 3 BOOL ifExist =[mgr filesExistAtPath:path isDirectory:*dir]; 4 如果是陌路dir==YES,然后取得文件夹里的所有文件 5 NSArray *array = [mgr contentsOfDirectoryAtPath:path error:nil];
三、NSMutableArray
addObject//添加对象方法 removeAllObject//删除所有对象 removeObject:Object//删除指定对象 removeObjectAtIndex:Int//删除指定位置的对象 // 快速创建可变数组,不能@[];返回的是不可变数组。
四、 NSSet NSMutableSet
setWithObject://类方法添加对象构造一个不可变set anyObject//随即访问,没有顺序 addObject removeObject set和array的共同点都是集合,都有一个可变的子类,都职能存放oc对象。
五、NSDictionary NSMutableDictionary
1、字典也是无序的,当设置重复key值,则覆盖
NSDictionary *dic = [NSDictionary dictionatyWithObject: forkey:]; NSDictionary *dic = [NSDictionary dictionaryWithObjects:NSArray forkeys:NSArray]; NSDictionary *dic = @{key : object,}; dic[@“”]; [dic objectForKey:@“”]
2、遍历字典,两中方法allKeys取出所有的key值装在一个数组中,之后循环取值。
//遍历 enumerateKeysAndObjectsUseingBlock:^(id, id obj, BOOL *stop)
3、数组不能直接复制,需要使用函数拷贝,如果使用指针数组可以直接赋值
/*temp=p[i]; p[i]=p[j]; p[j]=temp;*/ strcpy(temp, p[i]); strcpy(p[i], p[j]); strcpy(p[j], temp)