我有一组Stop
个对象,每个对象都包含一个
@property (nonatomic)CLLocationDistance distanceFromUser;
如何枚举数组并从最接近最远的方式对它们进行排序?这是我尝试过的代码,我没有得到排序数组。
NSSortDescriptor * ascendingDistance = [[NSSortDescriptor alloc] initWithKey:@"distanceFromUser" ascending:YES];
[_sortedStops sortedArrayUsingDescriptors:@[ascendingDistance]];
我是否必须使用一所旧学校'这样做的排序方法还是Obj-C有一个我可以用来轻松完成的功能?
答案 0 :(得分:4)
...我没有得到排序数组。
假设您的-distanceFromUser
方法正常工作,您确实会得到一个已排序的数组。但是你并没有把这个数组分配给任何东西,所以你永远不会知道。
看起来您希望对数组进行排序,但-sortedArrayUsingDescriptors:
会返回一个新数组。这样做:
NSSortDescriptor * ascendingDistance = [[NSSortDescriptor alloc] initWithKey:@"distanceFromUser" ascending:YES];
NSArray *sortedArray = [_sortedStops sortedArrayUsingDescriptors:@[ascendingDistance]];