두 가지 반복 방법에 문제가 있습니다.목표 C에서의 두 가지 반복 방법의 차이점은 무엇입니까?
NSArray *array=[[NSArray alloc] initWithObjects:@"A",@"B",@"C",@"D",nil];
NSMutableArray *mutArray=[[NSMutableArray alloc] initWithArray:array];
내가 같이 수행 할 때 그것은 올바른
for (int i=0;[mutArray count]!=0;) {
[mutArray removeObjectAtIndex:i];
}
NSLog(@"%d,",[mutArray count]);
을 일하고있어하지만 난 이렇게 할 때, 그것은 충돌거야 ... 왜?
for(id obj in mutArray)
{
[mutArray removeObject:obj]
}
NSLog(@"%d,",[mutArray count]);
두 번째 사례에 대한 해결책을 제공해주십시오.
이 게시물을 확인하십시오. http://stackoverflow.com/questions/5826336/remove-items-in-a-for-loop-without-side-effects - 배열에서 항목을 삭제할 수없는 이유 빠른 for 루프를 사용합니다. –
@ joerick의 답변은 자리에 있지만 단지 FYI 존재합니다 :'[mutArray removeAllObjects];';) – deanWombourne