使用NSPredicate的位置之间的距离

时间:2012-11-08 06:17:25

标签: objective-c ios core-data nspredicate cllocation

所以我有一个Core Data,其实体包含经度和纬度NSNumbers。我希望NSFetchRequest的{​​{1}}根据数据库位置中的对象离我当前位置的距离进行过滤。这将要求我将存储的坐标转换为CLLocationDegrees,然后将它们放在Predicate对象中。最后,我可以与CLLocation CLLocation进行比较。

我尽力说明这一点,有没有人有任何想法如何用distanceFromLocation做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:2)

尝试基于块的谓词:

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

NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(id location, NSDictionary *bindings) {
    return [location distanceFromLocation:currentLocation] <= maxDistance;
}];