0

これが私のNSArray

myArray = [NSArray arrayWithObjects: @"a", @"b", @"c", @"d", @"e", nil];

今、私は次のように配列をループしています:

int size = [myArray count];
NSLog(@"there are %d objects in the myArray", size);

for(int i = 1; i <= size; i++) {
    NSString * buttonTitle = [myArray objectAtIndex:i]; 
    // This gives me the order a, b, c, d, e 
    // but I'm looking to sort the array to get this order
    // e,d,c,b,a

    // Other operation use the i int value so i-- doesn't fit my needs
}

forループでは、これにより順序がわかります。

a, b, c, d, e 

しかし、私はこの順序を取得するために配列をソートしようとしています:

e, d, c, b, a

何かご意見は?

配列も元のソート順に保つ必要があります。

4

2 に答える 2

8

配列を呼び出しreverseObjectEnumerator、for-inループを使用してオブジェクトを循環してみてください。

NSArray *myArray = [NSArray arrayWithObjects:@"a", @"b", @"c", nil];

// Interate through array backwards:
for (NSString *buttonTitle in [myArray reverseObjectEnumerator]) {
    NSLog(@"%@", buttonTitle);
}

これは出力します:

c
b
a

または、インデックスで配列を反復処理する場合、または配列を使用して別のことを行う場合は、配列を元の場所に戻すことができます。

NSArray *reversedArray = [[myArray reverseObjectEnumerator] allObjects];
于 2012-07-11T04:11:41.003 に答える
1

それまたはループを変更する

for(int i = size; i >= 1; i--) 
于 2012-07-11T04:28:25.877 に答える