我得到了一个 NSArray,并且必须在一个特殊的情况下反向迭代它,这样我就可以首先查看最后一个元素。这是出于性能方面的原因: 如果最后一个选项没有意义,那么前面的所有选项都可以忽略。所以我想打破这个循环。但是如果从0到 n 迭代就不行了,我需要从 n 到0。也许有一个方法或函数我不知道,所以我不必重新发明车轮在这里。
NSArray
[NsArray reverseObjectEnumerator]
来自 给你:
NSEnumerator* myIterator = [myArray reverseObjectEnumerator]; id anObject; while( anObject = [myIterator nextObject]) { /* do something useful with anObject */ }
因为这是为了提高性能,所以您有很多选项,建议您都尝试一下,看看哪个最好。
[array enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:…]
-[NSArray reverseObjectEnumerator]
更极端的方法(如果性能是超临界的)
可能还有其他的,这种情况下,任何人都可以随意添加。
要添加其他答案,您可以结合使用 -[NSArray reverseObjectEnumerator]和 Objective-C 2.0中的快速枚举特性(可在 Leopard,iPhone 中获得) :
for (id someObject in [myArray reverseObjectEnumerator]) { // print some info NSLog([someObject description]); }
资料来源: http://cocoawithlove.com/2008/05/fast-enumeration-clarifications.html
for (int i = ((int)[array count] - 1); i > -1; i--) { NSLog(@"element: %@",array[i]); }