我需要扭转我的NSArray.
NSArray
举个例子:
[1,2,3,4,5]必须变成:[5,4,3,2,1]
[1,2,3,4,5]
[5,4,3,2,1]
实现这一目标的最佳方法是什么?
要获得数组的反向副本,请查看使用的解决方案reverseObjectEnumerator。
reverseObjectEnumerator
如果您利用 on 的内置reverseObjectEnumerator方法NSArray和 的allObjects方法,则有一个更简单的解决方案NSEnumerator:
allObjects
NSEnumerator
NSArray* reversedArray = [[startArray reverseObjectEnumerator] allObjects];
allObjects被记录为返回一个数组,其中包含尚未遍历的对象nextObject,按顺序:
nextObject
该数组按枚举顺序包含枚举器的所有剩余对象。
要反转可变数组,您可以在代码中添加以下类别:
@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