删除MKMapView注释与一定的pinColor?
是否有可能删除给定pinColor给定MKMapView上的所有注释? 我试图清除我的地图上的所有用户input的注释(引脚)之前显示新的我的应用程序的一部分,但我不知道如何粒度我可以有select地删除注释…
我想只删除所有具有MKPinAnnotationColorGreen(绿色)引脚的注释,但是我也可以简单地删除用户input的所有引脚,如果有方法我可以跟踪这些。
我知道我可以简单地做:
[myMapView removeAnnotations:myMapView.annotations];
…然后重新绘制所有我想要的注释,但这似乎是浪费资源。
有什么build议?
我现在无法testing这个,但是你试过了:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"pinColor == %d", MKPinAnnotationColorGreen]; [myMapView removeAnnotations:[myMapView.annotations filteredArrayUsingPredicate:predicate]];
至于用户添加的内容,您可能需要自己跟踪这些内容。 你也可以创build你自己的MKPinAnnotation的子类。 在该子类上添加属性
@property (nonatomic, BOOL) addedByUser;
。 你可以设置addedByUser为true,如果它们是由用户添加的,然后用上面类似的方法过滤掉那些(例如@“addedByUser == YES”)。
也许将每组注释保存在一个数组(NSMutableArray)指向这些注释的指针中,然后只删除它们?