for (int i = 0; i < [array count]; i++) { [array removeObjectAtIndex:i]; }
上面的遍历由于在remove操作之后array count的值也在不断改变,所以会导致无法完全删除元素.
正确的删除操作如下:
for (id obj in array) { [array removeObject:obj]; }
如果你需要同时获得数组的索引,可以利用NSMutableIndexSet先保存需要删除的元素,遍历完成后统一删除
NSMutableIndexSet *indexSets = [[NSMutableIndexSet alloc] init]; for (int i = 0 ; i < [array count]; i++) { [indexSets addIndex:i]; } [array removeObjectsAtIndexes:indexSets];
联系客服