一、枚举:NSEnumerator
成都创新互联是一家专业提供盐亭企业网站建设,专注与成都网站设计、网站建设、H5开发、小程序制作等业务。10年已为盐亭众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。依附于集合类(NSArray,NSSet,NSDictionary),没有用来创建实例的接口。
NSEnumerator的nextObject方法可以遍历每个集合元素,结束返回nil,通过与while结合使用可遍历集合中所有项。
对可变数组进行枚举操作时,不能通过添加或删除对象这类方式来改变数组容器。
二, 代码实例:
1. 枚举器
NSEnumerator *enumerator=[array objectEnumerator]; while(id obj = [enumerator nextObject]) { NSLog(@"I found %@",obj); }
2. 快速枚举
for(NSString *str in array) { NSLog(@"I found %@",str); }
3. 索引法
for(int i=0;i<[array count];i++) { NSLog(@"I found %@",[array objectAtIndex:i]); }
4. 代码块法
[array enumerateObjectsUsingBlock:^(NSString *str,NSUInteger index,Bool *stop) { NSLog(@"I found %@",str); }];
一个文件查找器代码:
#importint main(int argc, const char * argv[]) { @autoreleasepool { NSFileManager *manager; manager = [NSFileManager defaultManager]; NSString *home; home = [@"~" stringByExpandingTildeInPath]; NSDirectoryEnumerator *direnum; //文件目录遍历器 direnum = [manager enumeratorAtPath:home]; //实例方法-enumeratorAtPath用于把遍历的路径传给manager NSMutableArray *files; //用可变数组存放查找出的jpg文件名 files = [NSMutableArray arrayWithCapacity:42]; for(NSString *filename in direnum) //(-)pathExtension查找后缀字符 { if ([[filename pathExtension] isEqualTo: @"jpg"]) { [files addObject: filename]; } } for(NSString *filename in files) { NSLog(@"%@",filename); } } return 0; }
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。