我有一个基于地图的应用程序,使用 Google Maps 的 iOS SDK。我需要在核心数据数据库中存储多达数千个项目,并在地图上用标记显示它们。出于性能和可用性的原因,我需要在用户缩小时对这些标记进行聚类,但我需要确保放置有代表性的标记,以便用户知道在哪里放大以查看更多细节。
我的核心数据模型中的每个条目都存储了纬度/经度双精度值。因此,我想到的对项目进行聚类的方法是保留一个单独的实体,在其中我剥离地理坐标的不太重要的部分并在其中存储一个计数。
因此,每当将具有 lat/lon {44.9382719, -130.20293849} 的项目插入数据库时,另一个具有 lat/lon {44.9, -130.2} 的“集群”对象的计数属性就会增加。这个想法是,在低缩放(即缩小)时,我只会查询集群对象并将它们放在地图上而不是实际项目上。
我的问题是:根据NSManagedObject 参考,您不应该在其中获取东西awakeFromInsert
,那么如何确保插入一种托管对象会更新另一种相应托管对象的值?