XCODE让我知道如何排序数字大小

时间:2013-02-13 02:07:20

标签: xcode sorting

以下是我的代码:

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

1 个答案:

答案 0 :(得分: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);

您将按字母顺序排序而非数字排序。看看你的代码是否会得到不同的结果。