检查解析重复项(iOS)

Posted

技术标签:

【中文标题】检查解析重复项(iOS)【英文标题】:Check Parse duplicates (iOS) 【发布时间】:2016-01-09 14:07:01 【问题描述】:

我在 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 本身的重复项。

谢谢!

【问题讨论】:

为什么要了解重复项?您如何首先添加这两点?如果它们是一个问题,为什么你没有云代码来检查保存时的欺骗? @Wain 用户不向 Parse 添加对象(该应用程序只是获取我预先准备的数据)所以它需要是一次性事件,这就是为什么我没有云代码。我在地图上为每所学校显示标记,如果有两所学校具有相同的 geoPoint,一个标记将位于另一个之上,所以我想找到另一所学校具有相同 geoPoint 的对象并将其移动一点到一边,这将解决我的问题。我需要知道如何找到这些重复项。 【参考方案1】:

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

采取的方法称为地图针聚类。每当地图缩放/大头针更新时,算法就会运行以确定哪些大头针靠得很近并应分组。这导致地图上的一个引脚由多个原始引脚(注释)支持。选择图钉后,您可以显示所有注释的信息。

您可以使用多种实现方式:mkmapview pin clustering

【讨论】:

标记相互隐藏,所以这不是解决方案,底部标记永远不可见,所以我需要更改数据,不幸的是。顺便说一句,我也需要这个东西来安排我的地图,所以GMSMapView有类似的东西吗?

以上是关于检查解析重复项(iOS)的主要内容,如果未能解决你的问题,请参考以下文章

使用python3.7进行慢列表解析以去除重复项

NSJsonSerialzation 未解析来自 Facebook 的结果 - Cocoa 错误 3840 [重复]

我在尝试恢复节点模块时收到错误“错误意外结束 JSON 输入时解析'...“依赖项”:“tsli'”[重复]

无法在 Android Studio 2.0 中解析符号 R [重复]

在 iOS 中解析 JSON [重复]

打卡算法 26删除有序数组中的重复项 算法解析