一个很简单的原则,不能够再for in循环中修改所遍历的数组,无论你是add或remove都不可以,如果你要修改的话,建议实用for(;;;)格式的。。。
for (id elem in arr) {
[arr removeObject:elem];
}
这个是错误的,你应该改成:
for (NSINteger i = 0 i , [arr count];i++) {
id elem = [arr objectAtIndex:i];
[arr removeObject:elem];
}
本文讲解了在遍历数组过程中删除元素的常见错误,并提供正确的实现方式,避免因修改正在遍历的数组而导致的问题。
7

被折叠的 条评论
为什么被折叠?



