我使用以下代码来反转数组中的对象。但是这个方法会反转数组中的所有对象。
NSArray* finalreversed = [[myArray reverseObjectEnumerator] allObjects];
如何只反转数组中的最后10个元素,即myArray?
答案 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.逆转后者。将前者与反向连接起来。