应该尽可能避免反转NSMutableArray吗?

max*_*son 4 cocoa-touch enumeration objective-c nsmutablearray

假设我有1到450的NSNumbers.我可以选择将它们添加到NSMutableArray,从1开始到450结束,或从450开始到1结束.如果我可以从1开始并结束,我的代码会更简单一点有450,但是当我终于要在阵列上进行枚举的时候,我最终需要逆转它.换句话说,我需要枚举中的第一个对象为450,最后一个对象为1.

因为我的代码会更简单,如果我这样做(从1开始添加,然后在枚举之前反转),这是我的首选方法.但是,Apple文档- (NSEnumerator *)reverseObjectEnumerator说:

使用快速枚举协议更有效(请参阅NSFastEnumeration).Mac OS X v10.5及更高版本以及iOS 2.0及更高版本提供快速枚举.

那么我应该避免数组反转并简单地编写稍微复杂的代码,以便首先以所需的顺序创建NSMutableArray吗?

omz*_*omz 7

您可以对NSEnumerator实例使用快速枚举,有关快速枚举的文档甚至使用该reverseObjectEnumerator:方法作为示例:

NSEnumerator *enumerator = [array reverseObjectEnumerator];
for (NSString *element in enumerator) {
    //...
}
Run Code Online (Sandbox Code Playgroud)

此外,你的问题听起来很像过早优化......