私は可変配列を持っています:
NSMutableArray *locations = [[NSMutableArray alloc] init];
IBActionを呼び出すと(ユーザーが押し続けると1000回呼び出される可能性があります)、その配列に格納されているピンがマップに配置されます。
配列を作成した後、これを呼び出しました。
[locations removeAllObjects]
ただし、ピンはまだ重なり合っていますが、これでアレイが正しくクリアされましたか?
私は可変配列を持っています:
NSMutableArray *locations = [[NSMutableArray alloc] init];
IBActionを呼び出すと(ユーザーが押し続けると1000回呼び出される可能性があります)、その配列に格納されているピンがマップに配置されます。
配列を作成した後、これを呼び出しました。
[locations removeAllObjects]
ただし、ピンはまだ重なり合っていますが、これでアレイが正しくクリアされましたか?
- (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];
}
「removeAllObjects」行の下に次のコード行を追加します
[mapView removeAnnotations:mapView.annotations];
これは、アレイ内のオブジェクトのクリアランスによるものではありません。を呼び出して、mapViewから注釈を削除する必要があります
[mapViewObjectName removeAnnotions:locations];
次に、ロケーション配列に割り当てたすべての注釈が削除されます。
ありがとうございました