反转10个最后的Objective-C数组对象?

时间:2014-02-16 16:48:27

标签: iphone objective-c

我使用以下代码来反转数组中的对象。但是这个方法会反转数组中的所有对象。

NSArray* finalreversed = [[myArray reverseObjectEnumerator] allObjects];

如何只反转数组中的最后10个元素,即myArray?

2 个答案:

答案 0 :(得分:2)

NSUInteger rangeLength = MIN(10, myArray.count);
NSUInteger rangeLocation = MAX(0, myArray.count - rangeLength);
NSArray *lastTenReversed = [[[myArray subarrayWithRange:NSMakeRange(rangeLocation, rangeLength)] reverseObjectEnumerator] allObjects];
NSArray *finalArray = [[myArray subarrayWithRange:NSMakeRange(0, rangeLocation)] arrayByAddingObjectsFromArray:lastTenReversed];

MIN / MAX检查确保您不会超出界限。如果数组少于10个对象,它将简单地反转所有对象。

答案 1 :(得分:0)

拆分第一个(长度为10)的物体。拆掉最后一个10.逆转后者。将前者与反向连接起来。