0

重複の可能性:
Objective-CでNSArrayを元に戻すにはどうすればよいですか?

NSArrayインデックスで降順で並べ替えたい。

配列値を並べ替える方法インデックスで並べ替える方法...

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

結果は次のようになります

  • 最後
  • 5番目
  • 第3
  • 2番
  • 初め

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 に関する Apple ドキュメントを参照してください。

NSObjCRuntime.h

enum _NSComparisonResult {NSOrderedAscending = -1、NSOrderedSame、NSOrderedDescending};

于 2012-08-02T12:19:01.900 に答える