删除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)指向这些注释的指针中,然后只删除它们?