首页 > 代码库 > NSEnumerator用法小结
NSEnumerator用法小结
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 }
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 }
5
6
2 {
3 NSLog(@" I found %@",string);
4 }
5
6
这个循环将会遍历数组中的每个元素,并且用变量string存储每个数组值。它比枚举器语法更加简洁快捷。
NSEnumerator用法小结
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 = http://www.mamicode.com/[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=http://www.mamicode.com/%@",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"])
{
}
}
NSEnumerator用法小结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。