排序数组基于自定义对象值

时间:2013-03-25 08:23:59

标签: objective-c nsarray nssortdescriptor

我需要Sort array个自定义对象。

object很简单,它存储x和y坐标,例如:

XYPointObject.xCoordinate = [NSNumber];
XYPointObject.yCoordinate = [NSNumber];

我有一个array可以存储多达676个这些对象,我需要sort进入数字顺序,就像数值顺序的x值一样,y值连接到x值订单也是如此。例如,如果输入坐标是:

23,5 | 
5,7 | 
1,4 | 
1,7 | 
21,8 | 
9,12 | 
16,19

排序的数组将具有

的顺序
1,4 | 1,7 | 5,7 | 9,12 | 16,19 | 23,5 

请记住,最大x,y坐标为25(25,25)

2 个答案:

答案 0 :(得分:0)

你有没看过documentation

以下是您需要的方法:

-[NSArray sortedArrayUsingComparator:]

答案 1 :(得分:0)

使用:

NSSortDescriptor *xSorter = [[NSSortDescriptor alloc] initWithKey:@"xCoordinate" ascending:YES];
NSSortDescriptor *ySorter = [[NSSortDescriptor alloc] initWithKey:@"yCoordinate" ascending:YES];
NSArray *sortedArray=[array sortedArrayUsingDescriptors:@[xSorter,ySorter]];