私のコードが次のようなときに "コレクションが突然列挙されました:未知の例外 'NSGenericException'の理由でアプリケーションを終了する: '***コレクション<__ NSArrayM:0x117540>が列挙されているときに突然変異しました
NSString *poiStr = nil;
int SuccessValue=0;
NSMutableArray* poisArray=[[NSMutableArray alloc]init];
for (id<MKAnnotation> annotation in mainMapView.annotations)
{
MKAnnotationView* anView = [mainMapView viewForAnnotation: annotation];
if(anView)
{
POI* locationPOI = (POI*)[anView annotation];
printf("\n Location poi shape groupId:%s=====%s",[locationPOI.shapeSpaceGroupId UTF8String],[poiStr UTF8String]);
if((poiStr == nil) || ([poiStr isEqualToString:locationPOI.shapeSpaceGroupId]))
{
poiStr = locationPOI.shapeSpaceGroupId;
[poisArray addObject:locationPOI];
SuccessValue++;
}
printf("\n successValue:%d",SuccessValue);
if(SuccessValue==2)
{
POI* poi=[poisArray objectAtIndex:0];
[mainMapView removeAnnotation:poi];
SuccessValue--;
}
}
}
誰でも、コードの問題とその解決方法を教えてください。
ありがとうございました。 Madan。
反復しながら、あなたがmodyfingています。そんなことはできない。コメントアウト[mainMapView removeAnnotation:poi];まだ例外がスローされているかどうかを確認してください –
@カミルは答えとして投稿してください。 –
@ Kamil:[mainMapView removeAnnotation:poi]という行をコメントアウトすると、例外は生成されませんが、私は古い感情を取り除き、新しいものを使用する必要があります。 –