当前位置: 首页 > 知识库问答 >
问题:

为什么我无法从mapview中删除我的注释?

熊哲圣
2023-03-14

为什么我无法从mapview中删除我的注释?

我的代码:

- (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] 不适用于我

共有1个答案

杜俊逸
2023-03-14

没有要删除的内容。创建注释,然后根据对黑键的检查,添加或删除注释。但当你移除它时,你从未在之前添加过它。

 类似资料:
  • 问题内容: 我拼命地试图从字符串中删除空格(后来我希望能够将其转换为一个int),但是我似乎无法正常运行。 你能告诉我,我做错了什么吗?PS:我也尝试过\ W“和\ S” 问题答案: 更换 与 它将起作用,因为字符串是不可变的,因此不会更改您的字符串对象,它将返回一个新的字符串对象。因此,您将变量分配给由返回的字符串 另外,您应该尝试遵循Java命名约定,并使字段和变量以小写字母开头。 而且,您也

  • 问题指出: 创建一个具有长度和宽度双属性的矩形类。默认构造函数应该将这些属性设置为1。提供计算矩形周长和面积的方法,以及两个数据字段的访问器和赋值器。length和width的mutator方法应该验证传入的数字是否大于0.0且小于20.0——如果不符合这些标准,就不应该更改字段的值。 在同一文件中编写一个驱动程序类来测试您的矩形类。它应该提示用户输入矩形的长度和宽度,然后打印出矩形的面积和周长。

  • 我在三个EC2实例中有一个MongoDB客户机,并创建了一个副本集。上一次我遇到了一个问题,空间限制导致mongod进程停止,从而使应用程序停止,现在在几天前的一个实例中,我的一些表从数据库中消失了,所以我将日志记录和所有设置到数据库中,以便捕捉再次发生类似情况的情况。在今天早上的一个新事件中,我无法登录到我的系统,这时我发现整个数据库都是空的。我检查了其他类似这样的问题,建议设置TTL.,但我根

  • 问题内容: 在这里拉头发…在过去的一个小时里一直在玩,但是我不能让它做我想做的事,即。删除换行序列。 问题答案: 线索在于的签名。 它返回字符串的副本,但是去除了所需的字符,因此您需要分配新值: 这使得有时非常方便的操作链接成为可能: 作为最大S在评论中说,Python字符串是不可变的,这意味着任何“变异”操作都将产生变异的副本。 这就是它在许多框架和语言中的工作方式。如果确实需要可变的字符串类型

  • 问题内容: 我有如下代码: 但是,不是在每次调用setText时在循环的每次迭代后更新文本区域,而是仅在完成所有任务运行后才更新文本。为什么会发生这种情况,我该如何解决? 问题答案: 您可能正在使用Swing线程,该线程正在等待代码执行才能更新UI。尝试为该循环使用单独的线程。

  • 问题内容: 考虑以下功能: 它们应该是等效的。但是存在性能差异: 不带的版本else慢10%。这非常重要。为什么? 问题答案: 对我来说,它们的速度几乎相同:(Debian上的Python 2.6.6) 字节码也非常相似: 唯一的区别是,如果控制到达函数主体的末尾,则else返回包含代码的版本None。