如何在加载新的 NSURL 时删除 NSURL

How to remove NSURL when a new NSURL is loaded

我在该列表中弹出了 11 个不同的地图图层,我希望它在选择新图层时删除之前选择的图层。我应该怎么做。我有一个 if 语句将引用 url 更改为新层。 这是代码:

-(void) didLoadSelectedLayer:(NSString *)selectedLayer{
//Array of all the map layers
self.popOverArray = [[NSArray alloc] initWithObjects:@"Electric Radio", @"Electric Truck", @"Gas Radio", @"Gas Truck", @"Meter", @"Sewer Radio", @"Sewer Truck", @"Support Radio", @"Support Truck", @"Water Radio", @"Water Truck", nil];
//Load layers based on selected cell
if ([selectedLayer isEqualToString:@"Electric Radio"]) {

    _url = [NSURL URLWithString:@"https://example.com./0"];
}else if ([selectedLayer isEqualToString:@"Electric Truck"]){

    _url = [NSURL URLWithString:@"https://example.com/1"];
}else if ([selectedLayer isEqualToString:@"Gas Radio"]){
    _url = [NSURL URLWithString:@"https://example.com/2"];
}else if ([selectedLayer isEqualToString:@"Gas Truck"]){
    _url = [NSURL URLWithString:@"https://example.com/2"];
}else if ([selectedLayer isEqualToString:@"Meter"]){
    _url = [NSURL URLWithString:@"example.com/4"];
}else if ([selectedLayer isEqualToString:@"Sewer Radio"]){
    _url = [NSURL URLWithString:@"example.com/5"];
}else if ([selectedLayer isEqualToString:@"Sewer Truck"]){
    _url = [NSURL URLWithString:@"https://eample.com/6"];
}else if ([selectedLayer isEqualToString:@"Support Radio"]){
    _url = [NSURL URLWithString:@"https://example.com/7"];
}else if ([selectedLayer isEqualToString:@"Support Truck"]){
    _url = [NSURL URLWithString:@"https://example.com/8"];
}else if ([selectedLayer isEqualToString:@"Water Radio"]){
    _url = [NSURL URLWithString:@"https://example.com/9"];
}else if ([selectedLayer isEqualToString:@"Water Truck"]){
    _url = [NSURL URLWithString:@"https://example.com/10"];
}else {

}
//Load the Selected layer to map view
_graphicsLayer = [AGSGraphicsLayer graphicsLayer];
[self.mapView addMapLayer:_graphicsLayer withName:@"Graphics Layer"];
AGSCredential *userCred = [[AGSCredential alloc] initWithUser:@"username" password:@"password"];
AGSFeatureLayer *featrueServiceLayer = [[AGSFeatureLayer alloc] initWithURL:_url  mode:AGSFeatureLayerModeOnDemand credential:userCred];

[featrueServiceLayer setOutFields:[NSArray arrayWithObject:@"*"]];
featrueServiceLayer.editingDelegate = self;

[self.mapView addMapLayer:featrueServiceLayer withName:@"featureService"];


}

添加图形层后创建一个 if 语句以查看是否已添加图形层,如果为真则移除图形层,然后移除要素服务。

 _graphicsLayer = [AGSGraphicsLayer graphicsLayer];

if ([_graphicsLayer graphics]) {
    [_graphicsLayer removeAllGraphics];
    [self.mapView removeMapLayerWithName:@"featureService"];
}