在iphone中我们必须使用NSFastEnumeration以何种方式在哪种情况下可以告诉我如何在iphone中使用这些快速枚举的示例代码
答案 0 :(得分:1)
NSFastEnumeration
是您的类可以采用的协议,允许您使用快速枚举构造来迭代由您的类管理的对象集合。那就是你可以写:
for (Object * obj in MYAwesomeObject) {
//do awesome stuff here.
}
Foundation中的内置集合类已经实现了它(NSArray,NSSet,NSDictionary),它涵盖了集合对象的许多需求。例如,如果您想要实现特定的树结构,则可以让您的类采用NSFastEnumeration
来允许您迭代树中的所有对象,而无需直接处理遍历。在这种情况下,您的类必须实现-countByEnumeratingWithState:objects:count:
以符合协议,该协议返回(通过引用)C对象数组以进行迭代。
答案 1 :(得分:0)
NSFastEnumeration
可以加速循环。
所以不要使用:
for (in i =0; i < [myArray count]; i++){
id object [myArray objectAtIndex:i];
}
但请使用:
for (id object in myArray)
这将使得通过数组循环更快。