温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

枚举器,快速枚举

发布时间:2020-06-21 15:34:33 来源:网络 阅读:586 作者:Skymiles 栏目:开发技术

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


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

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






向AI问一下细节
推荐阅读:
  1. 枚举
  2. 枚举排列

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI