以下是我的代码:
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
答案 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);
您将按字母顺序排序而非数字排序。看看你的代码是否会得到不同的结果。