检查Parse重复项(iOS)

时间:2016-01-09 14:07:02

标签: ios objective-c iphone cocoa-touch parse-platform

我在Parse.com上有一个有“GeoPoint”列的课程(每个对象都有经度和纬度)。

我想检查是否有两个具有相同GeoPoint的对象。

我已经尝试了这个,但它不起作用(打印没有重复的对象):

PFQuery *query=[PFQuery queryWithClassName:@"Schools"];
query.limit=1000;
[self.myObjects addObjectsFromArray:[[query findObjects] mutableCopy]];

NSMutableArray *geoPoints=[NSMutableArray array];
for (PFObject *object in self.myObjects) {
    [geoPoints addObject:[object objectForKey:@"GeoPoint"]];
}

NSCountedSet *cs=[[NSCountedSet alloc] initWithArray:geoPoints];

int num=1;
for (PFObject *object in cs) {
    if ([cs countForObject:object]>1) {
        NSLog(@"%@ %@",[[self.myObjects objectAtIndex:num] objectForKey:@"Name"], [[self.myObjects objectAtIndex:num] objectForKey:@"Address"]);
        num++;
    }
}

如何检查NSArray / Parse本身的重复项。

谢谢!

1 个答案:

答案 0 :(得分:0)

我会采取不同的方法。当您放大和缩小地图时,远处的引脚将开始重叠。因此,您应该对此问题有一个通用的孤子(而不是编辑源数据)。

采用的方法称为地图引脚群集。每当更新地图缩放/引脚时,运行算法以确定哪些引脚靠近在一起并应进行分组。这导致地图上的一个引脚由多个原始引脚(注释)支持。选择引脚后,您可以显示所有注释的信息。

您可以使用以下许多实现:mkmapview pin clustering