Objective-C遍历数据的几种方式
来源:互联网 发布:便携工具 知乎 编辑:程序博客网 时间:2024/05/01 16:32
遍历的几种方式:
1、通过索引,如通过数组下标来遍历数组 -objectAtIndex()
2、使用NSEnumerator容器来存放数据项,通过nextObject来获取下一个数据
3、使用快速枚举(os x10.5以后)
4、最新的代码块方法(os x 10.5以后)
第一种通过下标的方式来遍历数据,这种方式太简单,这里不显示示例代码
第二种示例代码:
查找用户目录下所有的.jpg文件:
//使用NSEnumeratorvoid getFile(){ NSFileManager *manager; //获取NSFileManager对象,使用默认的Manager manager = [NSFileManager defaultManager]; NSString *home; //获取主目录,~代表主目录,stringByExpandingTildeInPath将~替换成当前用户的主目录 home = [@"~" stringByExpandingTildeInPath]; //将路径传入到文件管理器中,得到在当前路径中的所有文件的目录,方便接下来进行比较 NSDirectoryEnumerator *dirnum; NSMutableArray *files; //用于存放匹配成功的文件名 files = [NSMutableArray arrayWithCapacity: 42]; NSString *filename; //用于临时存放一个当前目录下的一个文件的名字 while(filename = [dirnum nextObject]) { if([[filename pathExtension] isEqualTo:@"jpeg"]) { //pathExtension输出文件扩展名 [files addObject:filename]; //匹配成功 } } NSEnumerator *fileenum; fileenum = [files objectEnumerator]; //将获取到匹配的文件名转换成可用于遍历的容器中 while(filename = [fileenum nextObject]) {//进行遍历 NSLog(@"%@",filename); }}
第三种使用快速枚举(针对os x10.5以后)
简单示例:
for(NSString *string in array){ NSLog(@"I found %@",string);}
查找用户目录下所有的.jpg文件:
//通过快速枚举方法void getFile() { NSFileManager *manager = [NSFileManager defaultManager]; NSString *home; home = [@"~" stringByExpandingTildeInPath]; NSMutableArray *files; files = [NSMutableArray arrayWithCapacity:42]; for(NSString *fileName in [manager enumeratorAtPath:home]) { if([[fileName pathExtension] isEqualToString:@"jpg"]){ [files addObject:fileName]; } } for(NSString *fileName in files){ NSLog(@"%@",fileName); }}
第四种通过代码块来实现,苹果公司添加了一个能在NSArray中通过代码块枚举对象的方法,代码如下:
-(void)enumerateObjectsUsingBlock:(void (^)(id obj,NSUInteger index,BOOL *stop))block;
我们仿照快速枚举
for(NSString *string in array){ NSLog(@"I found %@",string);}
来重写一下上面的给出的代码块,得到如下代码:
[array enumerateObjectsUsingBlock:^(NSString *string,NSUInteger index,BOOL *stop){ NSLog(@"I found %@",string);}];
代码块和快速枚举的不同:通过代码块可以让循环操作并发执行,而通过快速枚举执行操作要一项一项的线性完成
以上就是我自己理解的Objective-C的遍历数据的几种方式,写下来是为了以后能更好的回顾,如有错误,望大家指正。
1 0
- Objective-C遍历数据的几种方式
- Objective-C集合遍历的几种方式
- Objective-C中遍历字典、数组和集合的几种常见方式
- Hashtable 数据遍历的几种方式
- Objective-C的四种遍历collection的方式
- objective-c 语言 数组遍历的4种方式
- Objective-C语法之NSArray的4种遍历方式
- Objective-C定义枚举类型的几种方式
- 在Objective-C声明Block的几种方式
- Objective-C枚举的几种定义方式与使用
- objective-C中单例的几种写法
- 遍历游标的几种方式
- 集合遍历的几种方式
- 游标遍历的几种方式
- 游标遍历的几种方式
- 常见集合的几种遍历方式
- 二叉树的几种遍历方式
- Python遍历字典的几种方式
- 仿照淘宝ued的一个菜单栏
- C++ STL--stack/queue 的使用方法
- ubuntu虚拟机设置samba映射
- 2014腾讯、百度、阿里面试经验
- Linux文件系统启动过程及login的实现 .
- Objective-C遍历数据的几种方式
- Fragment生命周期表现
- 嵌入式中的上升沿与高电平触发的影响
- 值得学习的C语言开源项目
- 百度对新站的审核期是多久
- 欢迎使用CSDN-markdown编辑器
- linux命令(4)curl命令详解
- hibernate的级联查询,通过代码控制
- 如何简单地使用Parse在iOS应用创建后台服务