iOS开发一些零碎的小知识(三)
在IOS开发中,我们经常用的NSArray或者NSMutableArray ,但是当使用不当的时候,会有下面的错误提示。 Collection <__NSArrayM: 0xxxxxxx> was mutated while being enumerated.
遇到这类错误的时候,是同时对同一个数组进行了操作
错误例子:
NSMutableArray * arrayTemp = xxx;
for (NSDictionary * dic in arrayTemp) {
if (condition){
[arrayTemp removeObject:dic];
}
}
数组在遍历的同时,也对它进行移除操作,这样做程序在运行的时候会崩溃
所以应改为
NSMutableArray * arrayTemp = xxx;
NSArray * array = [NSArray arrayWithArray: arrayTemp];
for (NSDictionary * dic in array) {
if (condition){
[arrayTemp removeObject:dic];
}
}