繁体   English   中英

对CLLocation对象的NSArray进行排序

[英]sort an NSArray of CLLocation objects

我有一个CLLocation对象数组。 我想订购这个数组与用户当前位置的距离。

我知道我可以计算用户位置和每个CLLocation对象之间的距离,然后用这个距离对它进行排序。 还有其他解决方案不需要计算吗? 谢谢。

没有计算它就无法获得距离。 但计算相当简单,您只需在比较器块中执行一次。

[array sortUsingComparator:^NSComparisonResult(id o1, id o2) {
    CLLocation *l1 = o1, *l2 = o2;

    CLLocationDistance d1 = [l1 distanceFromLocation:userLocation];
    CLLocationDistance d2 = [l2 distanceFromLocation:userLocation];
    return d1 < d2 ? NSOrderedAscending : d1 > d2 ? NSOrderedDescending : NSOrderedSame;
}];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM