一、枚举:NSEnumerator
依附于集合类(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);
}
for(int i=0;i<[array count];i++)
{
NSLog(@"I found %@",[array objectAtIndex:i]);
}
[array enumerateObjectsUsingBlock:^(NSString *str,NSUInteger index,Bool *stop)
{
NSLog(@"I found %@",str);
}];
一个文件查找器代码:
#import <Foundation/Foundation.h>
int 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;
}
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。