Tha*_*nks 67 objective-c nsarray
我有一个NSArray并且必须在特殊情况下向后迭代它,所以我先看看最后一个元素.这是出于性能原因:如果最后一个没有意义,那么所有以前的都可以被忽略.所以我想打破循环.但是,如果我从0向前迭代,那将无效.我需要从n到0.也许有一个我不知道的方法或功能,所以我不必在这里重新发明轮子.
Sij*_*der 190
要添加其他答案,您可以-[NSArray reverseObjectEnumerator]结合Objective-C 2.0中的快速枚举功能(Leopard,iPhone中提供):
for (id someObject in [myArray reverseObjectEnumerator])
{
// print some info
NSLog([someObject description]);
}
Run Code Online (Sandbox Code Playgroud)
来源更多信息:http://cocoawithlove.com/2008/05/fast-enumeration-clarifications.html
Mik*_*lah 17
由于这是为了性能,你有很多选择,我们建议大家尝试一下,看看哪种方法效果最好.
[array enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:…]-[NSArray reverseObjectEnumerator]更极端的方法(如果性能超级关键)
可能还有其他人.在这种情况下,任何人都可以随意添加它.
Naa*_*aff 12
从这里:
NSEnumerator* myIterator = [myArray reverseObjectEnumerator];
id anObject;
while( anObject = [myIterator nextObject])
{
/* do something useful with anObject */
}
Run Code Online (Sandbox Code Playgroud)