0

可能重复:
如何在 Objective-C 中反转 NSArray?

NSArray我想按索引降序排序。

我可以对数组值进行排序我如何按索引排序...

NSArray* arr = [[NSArray alloc] initWithObjects:@"First",@"Second",@"Third",@"Fifth",@"Last",nil];

结果应该是这样的

  • 最后的
  • 第五
  • 第三
  • 第二
  • 第一的

iOS中是否有任何直接方法可用?

4

2 回答 2

5

如果您只想反转数组,有一种优雅的方法可以做到这一点。

我在danielpunkass的这个答案中找到了解决方案。

NSArray *reversedArray = [[originalArray reverseObjectEnumerator] allObjects];
于 2012-08-02T12:40:26.777 回答
0
NSMutableArray *array = ...;
[array sortUsingComparator: ^(id obj1, id obj2) {
    _NSComparisonResult result = [obj1 compare:obj2]; // [NSString compare:]
    if (result == NSOrderedAscending)
        return NSOrderedDescending;
    if (result == NSOrderedDescending)
        return NSOrderedAscending;
    return NSOrderedSame;
}];

或者

NSMutableArray *array = ...;
[array sortUsingComparator: ^(id obj1, id obj2) {
    _NSComparisonResult result = [obj1 compare:obj2]; // [NSString compare:]
    return -result; // minus result
}];

请参阅有关 NSArray -sortUsingComparator 的苹果文档:

NSObjCRuntime.h

枚举_NSComparisonResult {NSOrderedAscending = -1,NSOrderedSame,NSOrderedDescending};

于 2012-08-02T12:19:01.900 回答