0

Why am I unable to remove my annotations from mapview?

My code:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [self becomeFirstResponder];
    
    
    NSMutableArray *annotations = [[NSMutableArray alloc]init];
    
 
     NSString *path = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"];
     NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
         
    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"blackKey"])
    {
        NSLog(@"Black is on");
        
        
    NSArray *ann = [dict objectForKey:@"Category1"];
    
    for(int i = 0; i < [ann count]; i++) {
        
        NSString *coordinates = [[ann objectAtIndex:i] objectForKey:@"Coordinates"];
        
        double realLatitude = [[[coordinates componentsSeparatedByString:@","] objectAtIndex:1] doubleValue];
        double realLongitude = [[[coordinates componentsSeparatedByString:@","] objectAtIndex:0] doubleValue];
        
        MyAnnotation *myAnnotation = [[MyAnnotation alloc] init];
        CLLocationCoordinate2D theCoordinate;
        theCoordinate.latitude = realLatitude;
        theCoordinate.longitude = realLongitude;
        
        myAnnotation.coordinate=CLLocationCoordinate2DMake(realLatitude,realLongitude);

        myAnnotation.title = [[ann objectAtIndex:i] objectForKey:@"Name"];
        myAnnotation.subtitle = [[ann objectAtIndex:i] objectForKey:@"Address"];
        myAnnotation.icon = [[ann objectAtIndex:0] objectForKey:@"Icon"];
        
        if ([[NSUserDefaults standardUserDefaults] boolForKey:@"blackKey"])
        {
            NSLog(@"Black is on");
            [mapView addAnnotation:myAnnotation];
            [annotations addObject:myAnnotation];
            
        }   else 
            {
                NSLog(@"Black is off");
                
                [self.mapView removeAnnotation:myAnnotation];


            } 
        
        }
       
        
    }   
    
    else 
    {
        //Do nothing
    } 
    
    
}

[self.mapView removeAnnotation:myAnnotation]; does not work for me

4

1 回答 1

0

没有什么可以删除的。您创建注释,然后根据对 blackKey 的检查,添加或删除它。但是,当您删除它时,您从未在此之前添加它。

于 2012-06-01T21:51:01.287 回答