У меня есть табличный вид с местоположениями, и я хочу отфильтровать их рядом с соседними местоположениями, когда я нажимаю кнопку. Я думал, что когда я нажимаю кнопку, приложение может перезагрузить представление таблицы с близлежащими местоположениями, но я не могу понять, как сделать фильтрацию.UITableView сортировать содержимое, нажав кнопку
-1
A
ответ
1
Предположим, у вас есть NSArray
из CLLocation
объектов, давайте назовем его locations
и CLLocation *currenLocation
, которые представляют ваше текущее местоположение.
NSArray *sortedLocations = [locations sortedArrayUsingComparator:^(id obj1, id obj2) {
CLLocationDistance distance1 = [currentLocation distanceFromLocation: (CLLocation *)obj1];
CLLocationDistance distance2 = [currentLocation distanceFromLocation: (CLLocation *)obj2];
return distance1 - distance2;
}];
Edit: Вы можете использовать объект CLLocationManager
, чтобы получить частые обновления местоположения пользователя с помощью методов делегата. Вы можете начать его с startUpdatingLocation
. Проверьте this, чтобы получить дополнительную информацию.
Вы можете создать CLLocation
, если у вас есть географическое положение, по – initWithLatitude:longitude:
.
Вы хотите исключить места «фильтра», если они не находятся поблизости? Или вы просто хотите показать, что они отсортированы от ближайшего до самого дальнего? Последнее может быть выполнено методом 'NSArray'' sortedArrayUsingComparator: ' –
Извините, что я выражаю свое несоответствие. Я хочу отсортировать их по ближайшим координатам – darkjuso