在哪种情况下,我们必须在iphone中使用NSFastEnumeration

时间:2011-10-03 12:46:12

标签: iphone objective-c ios

在iphone中我们必须使用NSFastEnumeration以何种方式在哪种情况下可以告诉我如何在iphone中使用这些快速枚举的示例代码

2 个答案:

答案 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)

这将使得通过数组循环更快