-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:locations];

次に、ロケーション配列に割り当てたすべての注釈が削除されます。

ありがとうございました

于 2013-03-14T12:39:10.207 に答える