我有一个NSArray
并且必须在特殊情况下向后迭代它,所以我先看看最后一个元素。这是出于性能原因:如果最后一个没有意义,那么所有以前的都可以被忽略。所以我想打破循环。但是,如果我从0向前迭代,那将无效。我需要从n到0.也许有一个我不知道的方法或功能,所以我不必在这里重新发明轮子。
答案 0 :(得分:186)
要添加其他答案,您可以将-[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
答案 1 :(得分:17)
由于这是为了表现,你有很多选择,我们建议大家尝试一下,看看哪种方法效果最好。
[array enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:…]
-[NSArray reverseObjectEnumerator]
更极端的方法(如果表现超级关键)
可能还有其他人。在这种情况下,任何人都可以随意添加它。
答案 2 :(得分:12)
来自here:
NSEnumerator* myIterator = [myArray reverseObjectEnumerator];
id anObject;
while( anObject = [myIterator nextObject])
{
/* do something useful with anObject */
}
答案 3 :(得分:2)
[NsArray reverseObjectEnumerator]
答案 4 :(得分:0)
for (int i = ((int)[array count] - 1); i > -1; i--) {
NSLog(@"element: %@",array[i]);
}