实际上你不能编辑MKUserLocation
注释。我的意思是你不能从地图注释的数组中删除它,因为它read-only
是MKMapView
.
如果你去MKMapView.h
上课。你会发现下面的行
@property (nonatomic, readonly) MKUserLocation *userLocation;
在这里我们可以看到这个属性是只读的。所以我们不能从MKMapView
注释数组中删除它。无论您如何在使用其他注释进行计算时遇到困难,您都可以在运行时隐藏它。
我要解释的是,当不再需要用户位置时,您可以NO
为用户位置属性设置。
例如使用您的代码:
NSMutableArray *annotationsToRemove = [[NSMutableArray alloc] initWithArray: mapView.annotations];
[mapView removeAnnotations: annotationsToRemove];
[self.mapView setShowsUserLocation:NO];
NSLog(@"MapView annotations :%@", mapView.annotations);
检查NSLog
输出,您将看到MKUserLocation
注释已从mapView.annotations
数组中删除。
这是我遵循的简单方法。我如何不确定是否有其他方法可以做到这一点。如果您发现任何其他解决方案,请发表评论。