NSEnumerator
有数种Cocoa类-包括各种群体类型在内-可以向您提供枚举器,通过枚举器,我们可以逐个取得实例持有的元素。例如:
NSSet *aSet = // get a set;
NSEnumerator *enumerator = [aSet objectEnumerator];
id element;
while ((element = [enumerator nextObject])) {
/* code that acts on the element */
}
一般情况下,我们会使用快速枚举替代NSEnumerator 类。
快速枚举
有数种Cocoa类-包括各种群体类型在内-采用NSFastEnumeration协议。通过该协议,您可以使用和标准Cfor循环相似的语法取得某个实例持有的元素。请看下面的例子:
NSArray *anArray = // get an array;
for (id element in anArray) {
/* code that acts on the element */
}
集合类(如:NSArray、NSSet、NSDictionary等)均可获取到NSEnumerator, 该类是一个抽象类,没有用来创建实例的公有接口。NSEnumerator的nextObject方法可以遍历每个集合元素,结束返回nil,通过与while结合使用可遍历集合中所有项。
使用地方最多的是:键值编码 KVC KOC
有数种Cocoa类-包括各种群体类型在内-可以向您提供枚举器,通过枚举器,我们可以逐个取得实例持有的元素。例如:
NSSet *aSet = // get a set;
NSEnumerator *enumerator = [aSet objectEnumerator];
id element;
while ((element = [enumerator nextObject])) {
/* code that acts on the element */
}
一般情况下,我们会使用快速枚举替代NSEnumerator 类。
快速枚举
有数种Cocoa类-包括各种群体类型在内-采用NSFastEnumeration协议。通过该协议,您可以使用和标准Cfor循环相似的语法取得某个实例持有的元素。请看下面的例子:
NSArray *anArray = // get an array;
for (id element in anArray) {
/* code that acts on the element */
}
集合类(如:NSArray、NSSet、NSDictionary等)均可获取到NSEnumerator, 该类是一个抽象类,没有用来创建实例的公有接口。NSEnumerator的nextObject方法可以遍历每个集合元素,结束返回nil,通过与while结合使用可遍历集合中所有项。
使用地方最多的是:键值编码 KVC KOC