Расстояние между местоположениями с использованием NSPredicate

Итак, у меня есть Core Data с сущностью, содержащей долготу и широту как NSNumbers, Я хочу NSFetchRequest"s Predicate фильтровать на основе того, насколько далеко находится объект в базе данных от моего текущего местоположения. Это потребует, чтобы я преобразовал сохраненные координаты в CLLocationDegrees и затем поместил их в CLLocation объект. Наконец, я могу сделать сравнение с CLLocationdistanceFromLocation,

Я сформулировал это как можно лучше, есть ли у кого-нибудь идеи, как я могу сделать это с NSPredicate?

Спасибо!

1 ответ

Решение

Попробуйте предикат на основе блоков:

CLLocationDistance maxDistance = 100.0;
CLLocation *currentLocation = ...;

NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(id location, NSDictionary *bindings) {
    return [location distanceFromLocation:currentLocation] <= maxDistance;
}];
Другие вопросы по тегам