我是解析iOS sdk并面临一个奇怪问题的新手。我想查询在geopoint附近但未包含在objectId数组中的对象。
这里发生了什么。
这将返回未包含在arrayOfObjectIds中的正确对象:
[query whereKey:@"objectId" notContainedIn:arrayOfObjectIds];
//[query whereKey:@"location" nearGeoPoint:point];
这会返回我传递到的地理位置附近的正确对象。
//[query whereKey:@"objectId" notContainedIn:arrayOfObjectIds];
[query whereKey:@"location" nearGeoPoint:point];
这会导致问题,当我同时尝试它们时,它会返回0个对象。
[query whereKey:@"objectId" notContainedIn:arrayOfObjectIds];
[query whereKey:@"location" nearGeoPoint:point];
我知道当你有2个约束时,它就像' AND'操作。但即使我单独运行时也尝试使用相同的结果集,但结果仍然相同。
所以,如果他们是" AND",他们应该返回相同的结果吗?
非常感谢。
答案 0 :(得分:0)
如果我没有错,那么实际上你想要根据GeoPoint执行过滤器以及NotContainedIn对象ID数组的条件。
如果您的答案是肯定的,那么,
whereKey: nearGeoPoint:
永远不会过滤数据,因为它会执行排序。在您的情况下,第一个案例的结果将按照whereKey: nearGeoPoint:
方法的位置的接近程度进行排序。 See the Doc of Parse