2

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

nextObject

枚举所有对象时为零。我希望实现一些“类似代表”的行为,从而......

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...
}
4

5 回答 5

3

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

于 2010-05-17T02:22:08.677 回答
2

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

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

于 2010-05-17T02:22:30.350 回答
2

当返回的值nextObjectnil

于 2010-05-17T02:22:37.803 回答
2

while() 循环之后立即如何。当 nextObject 返回 nil 时,枚举完成,循环条件失败,在循环体之后立即继续执行。

于 2010-05-17T02:24:33.420 回答
0

因为如果返回的“对象”为 nil,while 循环将不会在主体中继续执行,它会中断到循环的末尾,把你想对你的对象做的任何事情都放在那里是个好主意。

于 2013-02-12T15:43:57.613 回答