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 }

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

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


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

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 = [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"])

           {

           }

        }

				
时间: 2024-11-07 01:27:24

NSEnumerator用法小结的相关文章

C++ typedef用法小结 (※不能不看※)

C++ typedef用法小结 (※不能不看※) 第一.四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量:以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽然:char *pa, *pb;也可行,但相对来说没有用typedef的形式直观,

英语语法最终珍藏版笔记- 21it 用法小结

it 用法小结 it 在英语中的意思较多,用法较广,现总结如下. 一.it作句子的真正主语 1.it 指前面已经提到过的人或事物,有时指心目中的或成为问题的人或事物,作真正主语. 例如: What’s this? -It is a sheep? 这是什么??这是一只绵羊. Who is it? -It’s me (I). 谁??是我. It’s the wind shaking the window. 是风刮得窗户响. 2.it指时间.季节.一般用在无人称动词的主语. 例如: What time

iOS开发系列之一 - UIButton 用法小结

// 初始化按钮并设置类型 UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; // 能够定义的UIButton类型有以下6种: // typedef enum { // UIButtonTypeCustom = 0, 自定义风格 // UIButtonTypeRoundedRect, 圆角矩形 // UIButtonTypeDetailDisclosure, 蓝色小箭头按钮,主要做详细说明用 // UIButto

iOS开发系列之二 - UILabel 用法小结

// 初始化标签 UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 300, 150)]; // 设置标签文字 label.text = @"This is a test text.This is a test text.This is a test text."; // 设置标签文字字体 // 使用系统字体 label.font = [UIFont systemFontOfSize:20]; //

jstree用法小结

jstree是一款功能强大的插件.官网地址http://www.jstree.com/ $('#jstree').jstree({ "core" : { "animation" : 0, "themes" : { "dots": true,"icons":true ,"stripes":false}, "check_callback" : true, "mu

结构体定义 typedef struct 用法详解和用法小结

typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别在于:若struct node {}这样来定义结构体的话.在申请node 的变量时,需要这样写,struct node n;若用typedef,可以这样写,typedef struct node{}NODE; .在申请变量时就可以这样写,NODE n;区别就在于使用时,是否可以省去struct这个关键字. 第三篇:struct和typedef struct 分三块来讲述:1 首先:在C中定义一个结构体

asp.net中Page.ClientScript.RegisterStartupScript用法小结(转)

//ASP.NET后台页面跳转 Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>if(confirm('保存成功!是否继续添加?')){location.href='ProductonAdd.aspx'}else{location.href='ProductonList.aspx'}</script>"); //后台弹出确定框 ClientScript.

Java中static、final用法小结(转)

一.final 1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变.其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中.这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值. 当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的

转 C/C++基础知识:typedef用法小结

第一.四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量: 以下则可行: typedef char* PCHAR; // 一般用大写 PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针 虽然: char *pa, *pb; 也可行,但相对来说没有用typedef的形式直观,尤其在需要大量指针的地方,typed