什么时候NSEnumerator完成了?

时间:2010-05-17 02:20:29

标签: cocoa nsenumerator

我们如何知道枚举何时完成?文档说:

的返回值
nextObject
枚举所有对象时

为nil。我希望实现一些“代表性”行为......

if (nextObject == nil) { 
    do something because we're done!
}

但我发现没有这样的事情:

enumerationDidFinish:

在下面的块中我可以检查枚举器是否完整?

NSArray *anArray = // ... ;
NSEnumerator *enumerator = [anArray objectEnumerator];
id object;

while ((object = [enumerator nextObject])) {
    // do something with object...
}

5 个答案:

答案 0 :(得分:3)

while循环结束时,您知道枚举已完成。然后你可以调用委托方法。

答案 1 :(得分:2)

只需将代码放在整个while块之后。

然后当枚举完成后,它将执行,你就会知道它已经到了结束。

答案 2 :(得分:2)

nextObject返回的值为nil

时,枚举器结束

答案 3 :(得分:2)

while()循环后立即怎么样。当nextObject返回nil时,枚举完成且循环条件失败,在循环后立即继续执行 身体。

答案 4 :(得分:0)

因为如果返回"对象"是nil,while循环不会继续在body中执行,它会断开到循环的结尾,把你想做的任何东西放在你的对象上会有一个好主意。