gee*_*guy 5 iphone annotations mkmapview ios
是否可以删除给定pinColor的给定MKMapView上的所有注释?我正在尝试清除我地图上所有用户输入的注释(引脚),然后为我的应用程序的一部分显示新的注释,但我不知道我有多精细地选择性地删除注释...
我想删除所有带有MKPinAnnotationColorGreen(绿色)引脚的注释,但我也可以简单地删除用户输入的所有引脚,如果有办法我可以跟踪它们.
我知道我可以做到:
[myMapView removeAnnotations:myMapView.annotations];
Run Code Online (Sandbox Code Playgroud)
...然后重新绘制我想要的所有注释,但这似乎是浪费资源.
有什么建议?
Mat*_*ham 10
我现在无法测试,但你尝试过:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"pinColor == %d", MKPinAnnotationColorGreen];
[myMapView removeAnnotations:[myMapView.annotations filteredArrayUsingPredicate:predicate]];
Run Code Online (Sandbox Code Playgroud)
至于用户添加的内容,您可能需要自己跟踪这些内容.您还可以创建自己的MKPinAnnotation子类.在该子类上,添加属性
@property (nonatomic, BOOL) addedByUser;
Run Code Online (Sandbox Code Playgroud)
.如果用户添加了者,则可以将addedByUser设置为true,然后使用上述类似方法过滤掉那些(例如@"addedByUser == YES").