枚举器,快速枚举-创新互联

容器类对象:枚举 NSEnumerator、NSDictionary。

一、枚举: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);
}];

一个文件查找器代码:

#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;
}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

当前题目:枚举器,快速枚举-创新互联
本文来源:https://www.cdcxhl.com/article6/ccehig.html

成都网站建设公司_创新互联,为您提供品牌网站建设微信公众号建站公司网页设计公司企业网站制作搜索引擎优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设