Cocoa 分子什么时候完成?
我们如何知道枚举何时完成?文档上写着:返回值Cocoa 分子什么时候完成?,cocoa,nsenumerator,Cocoa,Nsenumerator,我们如何知道枚举何时完成?文档上写着:返回值 nextObject 枚举所有对象后,为nil。我希望实现一些“委托式”行为,从而 if (nextObject == nil) { do something because we're done! } 但我看不出有这样的东西: enumerationDidFinish: 在下一块中,我可以在哪里检查枚举器是否完整 NSArray *anArray = // ... ; NSEnumerator *enumerator = [anAr
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...
}
当
while
循环完成时,您知道枚举已完成。然后可以调用委托方法。只需将代码放在整个之后,同时执行块
然后,当枚举完成时,它将执行,您将知道它已到达终点。当从nextObject
返回的值为nil
while()循环后立即执行该枚举器如何。当nextObject返回nil时,枚举完成,循环条件失败,循环结束后立即继续执行
身体 因为如果返回的“object”为nil,while循环将不会在主体中继续执行,它将中断到循环的末尾,将您想要对对象执行的任何操作都放在那里将是一个好主意。是的。。。只是我忘记了一件基本的事情。这就是当您不停地使用cocoa调用而忘记了循环的基本原理时所发生的情况!更具体地说,Edward是对的-当将-nextObject分配给对象时,while循环正在计算,本质上是“当有下一个对象时,执行以下操作:”。