-1

我有一个可变数组:

NSMutableArray *locations = [[NSMutableArray alloc] init];

当我调用 IBAction(我猜如果用户一直按下它可能会调用 1000 次)时,它会将引脚放置在地图上,并存储在该数组中。

我在创建数组后调用了它:

[locations removeAllObjects]

但是引脚仍然相互重叠,这是否正确清除了阵列?

4

3 回答 3

2
- (void)removeAllAnnotations {

    NSMutableArray *annotationsToRemove = [NSMutableArray arrayWithCapacity:[self.map.annotations count]];
    for (int i = 0; i < [self.map.annotations count]; i++) {

            [annotationsToRemove addObject:[self.map.annotations objectAtIndex:i]];
    }

    [self.map removeAnnotations:annotationsToRemove];
}
于 2013-03-14T12:35:04.860 回答
1

在“removeAllObjects”行下添加以下代码行

[mapView removeAnnotations:mapView.annotations];
于 2013-03-14T12:38:22.280 回答
0

这不是由于阵列中的对象的清除。您必须通过调用从 mapView 中删除注释

[mapViewObjectName removeAnnotions: 位置];

然后,您在位置数组中分配的所有注释都将被删除。

谢谢你

于 2013-03-14T12:39:10.207 回答