Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 删除批注时出现的问题_Iphone - Fatal编程技术网

Iphone 删除批注时出现的问题

Iphone 删除批注时出现的问题,iphone,Iphone,我正在尝试遍历所有的maps注释,并检查它是否是MKUserLocation注释。如果不是,我想删除它,这样我可以添加一些其他的。我试图使用下面的代码,但它崩溃了,并出现以下错误:“由于未捕获的异常“NSGenericeException”而终止应用程序,原因:“*集合在枚举时发生了变异。” 如何正确循环所有注释并将其删除,同时仍确保未删除userLocation标记。尝试操作注释数组的副本,该副本应仍然有效 NSArray *annotationsCopy = [self.mapView.an

我正在尝试遍历所有的maps注释,并检查它是否是MKUserLocation注释。如果不是,我想删除它,这样我可以添加一些其他的。我试图使用下面的代码,但它崩溃了,并出现以下错误:“由于未捕获的异常“NSGenericeException”而终止应用程序,原因:“*集合在枚举时发生了变异。”


如何正确循环所有注释并将其删除,同时仍确保未删除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视图在内部使用了一个可变数组,在移除对象时循环该数组将使其处于不稳定状态

谢谢。这正是我所需要的:)谢谢。这正是我所需要的:)