NSMutableArray禁止用for in枚舉
NSMutableArray *array = [NSMutableArray arrayWithCapacity:10];
[array addObject:@"1"];
[array addObject:@"2"];
[array addObject:@"3"];
[array addObject:@"4"];
for (NSString *str in array){ //NSMutableArray禁止用for in枚舉,系統(tǒng)會報錯
if([str isEqualToString:@"3"]{
[array removeObject:str];
}
}
一種常用解決辦法:
通過不可變數(shù)組的枚舉來對MutableArray進(jìn)行過濾操作
NSMutableArray *array = [NSMutableArray arrayWithCapacity:10];
[array addObject:@"1"];
[array addObject:@"2"];
[array addObject:@"3"];
[array addObject:@"4"];
NSArray *tempArray = [array copy];
for(NSString *str in tempArray){//tempArray是不可變數(shù)組能進(jìn)行for in枚舉
if([str isEqualTo:@"3"] || [str isEqualTo:@"4"]){
[array removeObject:str];//通過tempArray的枚舉來對(MutableArray)array進(jìn)行過濾操作
}
}
一種思路:通過倒序遍歷來刪除
enumerateObjectUsingBlock:^(){
}