枚举器,快速枚举
一、枚举:NSEnumerator
依附于集合类(NSArray,NSSet,NSDictionary),没有用来创建实例的接口。
NSEnumerator的nextObject方法可以遍历每个集合元素,结束返回nil,通过与while结合使用可遍历集合中所有项。
对可变数组进行枚举操作时,不能通过添加或删除对象这类方式来改变数组容器。
二, 代码实例:
1. 枚举器
NSEnumerator*enumerator=[arrayobjectEnumerator];while(idobj=[enumeratornextObject]){NSLog(@"Ifound%@",obj);}
2. 快速枚举
for(NSString*strinarray){NSLog(@"Ifound%@",str);}
3. 索引法
for(inti=0;i<[arraycount];i++){NSLog(@"Ifound%@",[arrayobjectAtIndex:i]);}
4. 代码块法
[arrayenumerateObjectsUsingBlock:^(NSString*str,NSUIntegerindex,Bool*stop){NSLog(@"Ifound%@",str);}];
一个文件查找器代码:
#import<Foundation/Foundation.h>intmain(intargc,constchar*argv[]){@autoreleasepool{NSFileManager*manager;manager=[NSFileManagerdefaultManager];NSString*home;home=[@"~"stringByExpandingTildeInPath];NSDirectoryEnumerator*direnum;//文件目录遍历器direnum=[managerenumeratorAtPath:home];//实例方法-enumeratorAtPath用于把遍历的路径传给managerNSMutableArray*files;//用可变数组存放查找出的jpg文件名files=[NSMutableArrayarrayWithCapacity:42];for(NSString*filenameindirenum)//(-)pathExtension查找后缀字符{if([[filenamepathExtension]isEqualTo:@"jpg"]){[filesaddObject:filename];}}for(NSString*filenameinfiles){NSLog(@"%@",filename);}}return0;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。