我需要扭转我的NSArray。举个例子:[1,2,3,4,5] 必须成为: [5,4,3,2,1]达到这个目标的最好方法是什么?
有一个更简单的解决方案,如果你利用NSArray的内置的reverseObjectEnumerator方法和NSEnumerator的allObjects方法:
NSArray* reversedArray = [[startArray reverseObjectEnumerator] allObjects];
allObjects被记录为按照以下顺序返回一个数组,其中尚未遍历nextObject的对象:
该数组按枚举顺序包含枚举数的所有剩余对象。
为了获得一个数组的颠倒的副本,看看danielpunkass的解决方案使用reverseObjectEnumerator。
为了反转可变数组,可以将以下类别添加到代码中:
@implementation NSMutableArray (Reverse)
- (void)reverse {
if ([self count] <= 1)
return;
NSUInteger i = 0;
NSUInteger j = [self count] - 1;
while (i < j) {
[self exchangeObjectAtIndex:i
withObjectAtIndex:j];
i++;
j--;
}
}
@end