#pragma mark ------------for循环遍历集合中的元素------

//创建一个数组,包含5个字符串对象,倒序取出数组中的所有元素,并存储到另一可变数组中

NSArray *array = @[@"1", @"2", @"3", @"4", @"5"];

NSMutableArray *marray = [NSMutableArray arrayWithCapacity:0];

for (NSInteger i = [array count] - 1; i >= 0 ; i --) {

[marray addObject:array[i]];

}

NSLog(@"marray is %@", marray);

NSDictionary *dic = @{@"name":@"zhonger",@"sex":@"m", @"age":@"29"};

NSArray *key = [dic allKeys];

NSArray *value = [dic allValues];

for (int i = 0; i < [key count]; i ++) {

//NSLog(@"%@ = %@",key[i], value[i]);

//NSLog(@"%@", [dic objectForKey:key[i]]);

NSLog(@"%@",dic[key[i]]);

//数组访问元素或者对象的方法是?  objectAtIndex:

//数组访问元素的语法糖? 数组对象[下标]

//字典访问value值的方法是? object ForKey:

//字典访问值的语法糖? 字典对象[key]

}

//创建一个集体,保存三条信息,遍历得到每一条信息

NSSet *set = [NSSet setWithObjects:@"1", @"888888", @"3", nil];

NSArray *allSet = [set allObjects];

for (int i = 0; i < [allSet count]; i ++) {

NSLog(@"allSet is %@",allSet[i]);

}

#pragma mark ------------枚举器 NSEnumerator------

NSArray *enumArray = @[@"jinkangda", @"zhubada", @"dazi", @"bada"];

//创建一个枚举器,依附于数组

NSEnumerator *rator = [enumArray objectEnumerator];  //正序

//创建一个对象

id object = nil;   //容量为空

while (object = [rator nextObject]) {

NSLog(@"正序==%@",object);

}

NSEnumerator *rator1 = [enumArray reverseObjectEnumerator];

id object1 = nil;

while (object1 = [rator1 nextObject]) {

NSLog(@"倒序==%@",object1);

}

//字典枚举遍历

NSDictionary *enumDic =

@{@"key1":@{@"key1":@"value1"},

@"key2":@{@"key2":@"value2"},

@"key3":@{@"key3":@"value3"}};

NSEnumerator *dicRator = [enumDic objectEnumerator];

id value1 = nil;

while (value1 = [dicRator nextObject]) {

NSLog(@"value1 is  %@",value1);

}

#pragma mark   ------------for...in..快速枚举------

//type *object 代表从集合中获取的对象类型  object只是一个名称而已,只需要满足变量命名法则就行

//collection 代表遍历的集合,要在哪个集合中遍历

//statements 遍历中需要执行的操作,比如使用枚举出来的对象实现某些功能

/*

for (<#type *object#> in <#collection#>) {

<#statements#>

}*/

for (id object in enumArray) {

NSLog(@"-----%@",object);

}

//使用forin遍历获取字典中的每个value

//在字典中遍历key,通过得到每一个key值得到每一个value

for (id key in enumDic) {

//NSLog(@"%@",[enumDic objectForKey:key]);

NSLog(@"%@",enumDic[key]);

for (id key1 in enumDic[key]) {

NSLog(@"%@",enumDic[key][key1]);

// NSLog(@"%@",[[enumDic objectForKey:key]objectForKey:key1]);

}

}

//定义⼀一个数组, 包含5个字符串对象, 取出数组中所有字 符串, 并拼接⽣生成⼀一个新的字符串。

NSArray *ar = @[@"I", @"L", @"o", @"v", @"eyou"];

NSMutableString *mstr = [[NSMutableString alloc]initWithCapacity:0];

for (id object in ar) {

//[mstr stringByAppendingString:object];

[mstr appendString:object];

}

NSLog(@"%@",mstr);

for..in遍历,枚举器的更多相关文章

  1. C# 枚举器(enumerator)

    总结: 1.枚举器就像是序列中的"游标"或"书签".可以有多个"书签",移动其中任何一个都可以枚举集合,与其他枚举器互不影响.用来遍历数据结 ...

  2. JAVA中的数据结构——集合类(序):枚举器、拷贝、集合类的排序

    枚举器与数据操作 1)枚举器为我们提供了访问集合的方法,而且解决了访问对象的“数据类型不确定”的难题.这是面向对象“多态”思想的应用.其实是通过抽象不同集合对象的共同代码,将相同的功能代码封装到了枚举 ...

  3. C#中的枚举器(转)

    术语表 Iterator:枚举器(迭代器) 如果你正在创建一个表现和行为都类似于集合的类,允许类的用户使用foreach语句对集合中的成员进行枚举将会是很方便的.这在C# 2.0中比 C# 1.1更容 ...

  4. c# foreach枚举器

    要是自己的类支持foreach ,必须在类中必须有GetEnumerator方法,该方法返回的是一个IEnumerator类型的枚举器; public class MyStruct { public ...

  5. C#图解教程 第十八章 枚举器和迭代器

    枚举器和迭代器 枚举器和可枚举类型 foreach语句 IEnumerator接口 使用IEnumerable和IEnumerator的示例 泛型枚举接口迭代器 迭代器块使用迭代器来创建枚举器使用迭代 ...

  6. C# 枚举器

    1:枚举器和可枚举类型 我们知道使用foreach可以遍历数组中的元素.那么为什么数组可以被foreach语句处理呢,下面我们就进行讨论一下这个问题. 2:使用foreach语句 我们知道当我们使用f ...

  7. C# 枚举器和迭代器

    一.枚举器(enumerator)和可枚举类型(enumeration) 我们都知道foreach语句可以用来遍历数组中的元素,但你有没有想过为什么它可以被foreach处理呢? 这是因为数组可以按需 ...

  8. 关于IEnumerator<T>泛型枚举器 和 IEnumerable<T>

    在开发中我们经常会用到 IEnumerable<T> xxx 或者 List<T> xxx 这种集合或者集合接口,实际上就是一个线性表嘛然后结合C#提供的语法糖 foreach ...

  9. C#知识点-枚举器和迭代器

    一.几个基本概念的理解 问题一:为什么数组可以使用foreach输出各元素 答:数组是可枚举类型,它实现了一个枚举器(enumerator)对象:枚举器知道各元素的次序并跟踪它们的位置,然后返回请求的 ...

随机推荐

  1. ABBYY FineReader 12对系统有哪些要求

    ABBYY FineReader是市场领先的ocr文字识别软件,可快速方便地将扫描的文档.PDF文档和图像文件(包括数码照片)转化为可编辑.可搜索的格式.每个软件都有其安装运行的系统要求,ABBYY ...

  2. 使用Spring缓存的简单Demo

    使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...

  3. D3的基本设计思路

    学习一项新技术,首先要搞清楚它的基本设计思路,有了这个宏观的技术架构,使用该技术起来,就会得心应手了.否则,就会不知道如何下手,即使看到人家的例子程序,可能也不知其所以然. 下面,就简单的结合自己研究 ...

  4. Shell编程之--“grep-awk-sed” 基础用法汇总-菜鸟入门级

  5. 【python】调用机器喇叭发出蜂鸣声(Beep)

    ##coding:utf-8 import winsound winsound.Beep(600,6000) #其中600表示声音大小,1000表示发生时长,1000为1秒

  6. zend studio导入svn项目后不能代码提示的解决

    把项目下.project的文件内容改成如下: <?xml version="1.0" encoding="UTF-8"?><projectDe ...

  7. 黄聪:win7 QQ自动远程协助 提示关闭了远程桌面

    最近在使用QQ自动远程协助的时候,输入完远程验证密码后,提示“关闭了远程桌面” 系统环境:win7 64位 问题描述:在使用QQ自动远程协助,对方QQ提示关闭了远程桌面. 解决办法:将2台电脑的时间调 ...

  8. [转载]ARM协处理器CP15寄存器详解

    用于系统存储管理的协处理器CP15  原地址:http://blog.csdn.net/gameit/article/details/13169405 MCR{cond}     coproc,opc ...

  9. [手机取证] 绕过屏幕锁定启用调试模式-For Android 4.4.2

    Google在Android 4.x中引入了调试信任机制,类似于iOS,在设备有屏幕密码的情况下首次连接(或未记住计算机)的情况下, 需要首先打开屏幕锁定后才可进行调试启用操作. 在Android 4 ...

  10. [手机取证] Apple正在行动起来封堵后门?

    在被爆出“后门”事件后,苹果似乎已经开始了自己的行动,在最新发布的iOS 8 Beta5版本中,iOS取证专家Zdziarski提及的众多后台服务中的packet sniffer服务已经被禁用,体现出 ...