容器(Collecion): OC中提供的容器类,数组,字典,集合。
枚举过程中,不能改变被枚举的内容,但是可以改变对象里面的属性
遍历: 对集合中元素依次取出的过程叫做遍历。
三种⽅方式:
fo循环遍历
NSEnmeao遍历
fo...in遍历
一、for遍历 在枚举的过程中可以更改
1.遍历数组
原理:通过fo循环的循环变量⽤用作数组元素下标来获取不同下标的元素。
循环次数就是数组元素的个数。

可变数组和不可变数组都可以用此方法
2.遍历字典
原理:先获取字典中所有的key,存储到数组中,遍历数组依次取出每一个key,然后根据key从字典中取出对应的vale。
循环次数等于字典的元素个数。

可变字典和不可变字典都可以这样遍历
3.遍历集合
原理: 用集合的allObjec属性先取到集合的所有元素存储到数组中,再通过for循环的循环变量用作下标来取到每个元素。

可变集合和不可变集合都可以这样遍历
二、枚举器遍历 NSEnumerator
枚举器:遍历容器中的元素。
依附于容器类(NSArray,NSSet,NSDictionary),不能用来创建实例变量。
NSEnumerator的nextObject⽅法可以遍历每个容器元素,结束返回nil,通过与while结合使用可遍历容器中的所有元素。
对可变容器进⾏枚举操作时,不能通过添加或删除对象这类方式来改变集合容器的元素个数。
1.不可变数组枚举

//nextObject 会一一返回枚举器中的元素,当没有元素时返回nil;//在枚举过程中不能改变数组的元素
2.可变数组枚举

倒序枚举指的是数组中元素从最后一个向第一个输出,不是排序
3.字典枚举

由于字典是无序的,所以没有倒序
4.集合枚举

由于集合是无序的,所以没有倒序枚举
三、for in遍历(快速枚举) 在枚举过程中不能更改
1.数组的快速枚举

可变和不可变数组的快速枚举方法一样
2.字典的快速枚举

可变和不可变字典的快速枚举方法一样
3.集合的快速枚举

可变和不可变集合的快速枚举方法一样
