我完全不熟悉Objective-C
和iOS Development
我想要自学。我有一本我正在关注的书,它教你的第一件事就是如何用Master / Detail类型的布局填充TableView
plist
个项目。我认为获取用户gps位置(我确实知道该怎么做)将是一个有趣的任务,然后根据它们与用户的降序有多近,对各种gps位置plist
进行排序。我最初的想法是将这些值放入Array
,然后迭代该数组并将位置1比较1.我的问题是我看过这本书和各种谷歌搜索,我无法弄清楚如何实现这一目标。任何提示或示例将非常感激。
答案 0 :(得分:1)
在数组中使用CLLocation对象(在我的示例中称为arr)并且您具有用户位置(在我的示例中为self.myLocation),您可以使用sortedArrayUsingComparator对它们进行排序:。
NSArray *sorted = [self.arr sortedArrayUsingComparator:^NSComparisonResult(CLLocation *obj1, CLLocation *obj2) {
if ([obj1 distanceFromLocation:self.myLocation] > [obj2 distanceFromLocation:self.myLocation]) {
return (NSComparisonResult)NSOrderedDescending;
}else if ([obj1 distanceFromLocation:self.myLocation] < [obj2 distanceFromLocation:self.myLocation]){
return (NSComparisonResult)NSOrderedAscending;
}else{
return (NSComparisonResult)NSOrderedSame;
}
}];