解析iOS SDK'nearGeoPoint'和'notContainedIn'不能一起工作

时间:2015-02-25 23:39:02

标签: ios objective-c parse-platform

我是解析iOS sdk并面临一个奇怪问题的新手。我想查询在geopoint附近但未包含在objectId数组中的对象。

这里发生了什么。

  1. 这将返回未包含在arrayOfObjectIds中的正确对象:

    [query whereKey:@"objectId" notContainedIn:arrayOfObjectIds];
    //[query whereKey:@"location" nearGeoPoint:point];
    
  2. 这会返回我传递到的地理位置附近的正确对象。

    //[query whereKey:@"objectId" notContainedIn:arrayOfObjectIds];
    [query whereKey:@"location" nearGeoPoint:point];
    
  3. 这会导致问题,当我同时尝试它们时,它会返回0个对象。

    [query whereKey:@"objectId" notContainedIn:arrayOfObjectIds];
    [query whereKey:@"location" nearGeoPoint:point];
    
  4. 我知道当你有2个约束时,它就像' AND'操作。但即使我单独运行时也尝试使用相同的结果集,但结果仍然相同。

    所以,如果他们是" AND",他们应该返回相同的结果吗?

    非常感谢。

1 个答案:

答案 0 :(得分:0)

如果我没有错,那么实际上你想要根据GeoPoint执行过滤器以及NotContainedIn对象ID数组的条件。

如果您的答案是肯定的,那么, whereKey: nearGeoPoint:永远不会过滤数据,因为它会执行排序。在您的情况下,第一个案例的结果将按照whereKey: nearGeoPoint:方法的位置的接近程度进行排序。 See the Doc of Parse