检查解析重复项(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)的主要内容,如果未能解决你的问题,请参考以下文章
NSJsonSerialzation 未解析来自 Facebook 的结果 - Cocoa 错误 3840 [重复]
我在尝试恢复节点模块时收到错误“错误意外结束 JSON 输入时解析'...“依赖项”:“tsli'”[重复]