博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NSEnumerator用法小结
阅读量:5035 次
发布时间:2019-06-12

本文共 2766 字,大约阅读时间需要 9 分钟。

NSEnumerator

 

3)枚举 (NSEnumerator)

遍历数组每个索引处的对象,你可以编写一个0到[array count]的循环,而NSEnumerator用来描述这种集合迭代运算的方式。
通过objectEnumerator向数组请求枚举器,如果想从后向前浏览集合,可使用reverseObjectEnumerator方法。在获得枚举器后,可以开始一个while循环,每次循环都向这个枚举器请求它的下一个对象:nextObject。nextObject返回nil值时,循环结束。示例如下:

 
1 // NSEnumerator示例
2 NSEnumerator *enumerator;
3 enumerator = [array objectEnumerator];
4 id thing;
5 while (thing = [enumerator nextObject]) {
6 NSLog(@"I found %@",thing);
7 }

 

 

 

对于可变数组进行枚举操作时,主要不要添加或删除数组中的对象。

4)快速枚举
Objective-C2.0支持快速枚举:如

 
1 for (NSString *string in array)
2 {
3 NSLog(@" I found %@",string);
4 }
6

 

这个循环将会遍历数组中的每个元素,并且用变量string存储每个数组值。它比枚举器语法更加简洁快捷。

 

 

 

 

 

 

 

 

 

NSLog(@"Hello, World!");         NSDictionary *myDic=[[NSDictionary alloc]initWithObjectsAndKeys:@"张三",@"name",@"李四",@"name", nil];         NSUInteger count = [myDic count];          NSLog(@"词典的数量为:  %lu",count);         NSEnumerator * myEnumerator = [myDic keyEnumerator];          for (NSObject *object in myEnumerator) {              NSLog(@"遍历KEY的值: %@",object);          }         myEnumerator = [[myDic allValues] objectEnumerator];         NSString *value;         while((value = [myEnumerator nextObject]))         {
NSLog(@"遍历的值: %@",value); } //通过KEY找到value NSObject *myObject = [myDic objectForKey:@"name"]; if (myObject != nil) { NSLog(@"通过KEY找到的value是: %@",myObject); } NSMutableDictionary *mydic2 = [NSMutableDictionary dictionaryWithCapacity:10]; [mydic2 setObject:@"Alex Hu" forKey:@"name"]; [mydic2 setObject:@"1388888888" forKey:@"mobile number"]; for (NSObject *object in [mydic2 objectEnumerator]) { NSLog(@"遍历的值: %@",object); } NSSet *mySet=[NSSet setWithObjects:@"A",@"B",@"C",@"D",[NSNumber numberWithInteger:123], nil]; count=[mySet count]; NSLog(@"count= %lu",count); myEnumerator=[mySet objectEnumerator]; for (NSObject *object in myEnumerator) {
NSLog(@"myEnumerator value=%@",object); if ([object isEqualTo:@"A"]) {
NSLog(@"找到A了"); } if ([object isEqual:@"B"]) {
NSLog(@"找到B"); } } NSArray *mySetArr=[mySet allObjects]; for (NSUInteger i=0; i<[mySetArr count];i++) {
NSLog(@"%lu =>%@",i,[mySetArr objectAtIndex:i]); } if ([mySet containsObject:@"D"]) { NSLog(@"集合中包含 D这个对象"); }
NSFileManager *fm=[NSFileManager defaultManager];  for(NSString *fileName in [fm enumeratorAtPath:documentsDirectory])  {
if([[fileName pathExtension]isEqualToString:@"jpg"]) {
} }
 

 

转载于:https://www.cnblogs.com/iOS-mt/p/4109023.html

你可能感兴趣的文章
Spark Streaming笔记整理(二):案例、SSC、数据源与自定义Receiver
查看>>
组播业务开通
查看>>
Java开发技术大揭底——让你认知自己技术上的缺陷,成为架构师
查看>>
MySQL:如何维护binlog?
查看>>
Android Studio 的常用设置
查看>>
Pythonic八荣八耻
查看>>
p2.BTC-数据结构
查看>>
封装自己的getClass
查看>>
python字符串的常用方法
查看>>
.net4.0、.net4.5、.net4.6 三者对系统的要求
查看>>
分布式下的session处理方式
查看>>
LeetCode(30) Substring with Concatenation of All Words
查看>>
哈夫曼编码问题再续(下篇)——优先队列求解
查看>>
炜煌E30 E31微型热敏打印机 STM32 串口驱动
查看>>
Swift 2 有哪些新特性
查看>>
[js]变量与数据类型篇
查看>>
[BZOJ2054] 疯狂的馒头 并查集
查看>>
js 正则表达式
查看>>
Eclipse新建Web应用,Server端口(8080,8005,8009)被占用解决办法
查看>>
Android Content Provider Guides
查看>>