Iphone 删除批注时出现的问题
我正在尝试遍历所有的maps注释,并检查它是否是MKUserLocation注释。如果不是,我想删除它,这样我可以添加一些其他的。我试图使用下面的代码,但它崩溃了,并出现以下错误:“由于未捕获的异常“NSGenericeException”而终止应用程序,原因:“*集合在枚举时发生了变异。”Iphone 删除批注时出现的问题,iphone,Iphone,我正在尝试遍历所有的maps注释,并检查它是否是MKUserLocation注释。如果不是,我想删除它,这样我可以添加一些其他的。我试图使用下面的代码,但它崩溃了,并出现以下错误:“由于未捕获的异常“NSGenericeException”而终止应用程序,原因:“*集合在枚举时发生了变异。” 如何正确循环所有注释并将其删除,同时仍确保未删除userLocation标记。尝试操作注释数组的副本,该副本应仍然有效 NSArray *annotationsCopy = [self.mapView.an
如何正确循环所有注释并将其删除,同时仍确保未删除userLocation标记。尝试操作注释数组的副本,该副本应仍然有效
NSArray *annotationsCopy = [self.mapView.annotations copy];
for(id a in annotationsCopy) {
if([a class] != [MKUserLocation class]) {
[[self mapview] removeAnnotation:a];
}
}
[annotationsCopy release];
如果在地图视图运行时将注释添加到地图视图,则不会删除注释
看起来map视图在内部使用了一个可变数组,在移除对象时循环该数组将使其处于不稳定状态 尝试操作annotations数组的一个副本,它应该仍然可以工作
NSArray *annotationsCopy = [self.mapView.annotations copy];
for(id a in annotationsCopy) {
if([a class] != [MKUserLocation class]) {
[[self mapview] removeAnnotation:a];
}
}
[annotationsCopy release];
如果在地图视图运行时将注释添加到地图视图,则不会删除注释
看起来map视图在内部使用了一个可变数组,在移除对象时循环该数组将使其处于不稳定状态 谢谢。这正是我所需要的:)谢谢。这正是我所需要的:)