-1

以下は私のコードです:

NSArray *myarr = [[NSArray alloc]initWithObjects:@"2",@"13",@"1",@"21",@"300",@"4", nil];
NSSortDescriptor *desc = [[NSSortDescriptor alloc]initWithKey:@"self" ascending:YES];
NSArray *rrrr = [myarr sortedArrayUsingDescriptors:[NSArray arrayWithObject:desc]];
NSLog(@"%@",rrrr);

以下は私の結果です:

1,
13,
2,
21,
300,
4

以下は私の予想される結果ですが:

1,
2,
4,
13,
21,
300
4

1 に答える 1

0

オブジェクトは数値ではなく文字列です。これを試して:

NSArray *myarr = [[NSArray alloc]initWithObjects:@2,@13,@1,@21,@300,@4, nil];
NSSortDescriptor *desc = [[NSSortDescriptor alloc]initWithKey:@"self" ascending:YES];
NSArray *rrrr = [myarr sortedArrayUsingDescriptors:[NSArray arrayWithObject:desc]];
NSLog(@"%@",rrrr);

数値の並べ替えではなく、アルファベット順の並べ替えを取得しています。代わりに、そのコードで異なる結果が得られるかどうかを確認してください。

于 2013-02-13T02:15:45.353 に答える