Расстояние между местоположениями с использованием NSPredicate
Итак, у меня есть Core Data
с сущностью, содержащей долготу и широту как NSNumbers
, Я хочу NSFetchRequest
"s Predicate
фильтровать на основе того, насколько далеко находится объект в базе данных от моего текущего местоположения. Это потребует, чтобы я преобразовал сохраненные координаты в CLLocationDegrees и затем поместил их в CLLocation
объект. Наконец, я могу сделать сравнение с CLLocation
distanceFromLocation
,
Я сформулировал это как можно лучше, есть ли у кого-нибудь идеи, как я могу сделать это с NSPredicate
?
Спасибо!
1 ответ
Решение
Попробуйте предикат на основе блоков:
CLLocationDistance maxDistance = 100.0;
CLLocation *currentLocation = ...;
NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(id location, NSDictionary *bindings) {
return [location distanceFromLocation:currentLocation] <= maxDistance;
}];