我们如何知道枚举何时完成?文档说:
的返回值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...
}
答案 0 :(得分:3)
当while
循环结束时,您知道枚举已完成。然后你可以调用委托方法。
答案 1 :(得分:2)
只需将代码放在整个while
块之后。
然后当枚举完成后,它将执行,你就会知道它已经到了结束。
答案 2 :(得分:2)
当nextObject
返回的值为nil
答案 3 :(得分:2)
while()循环后立即怎么样。当nextObject返回nil时,枚举完成且循环条件失败,在循环后立即继续执行 身体。
答案 4 :(得分:0)
因为如果返回"对象"是nil,while循环不会继续在body中执行,它会断开到循环的结尾,把你想做的任何东西放在你的对象上会有一个好主意。