NSArray使用小技巧褪尝。
在IOS開發(fā)中闹获,我們經(jīng)常用的NSArray或者NSMutableArray ,但是當(dāng)使用不當(dāng)?shù)臅r候期犬,會有下面的錯誤提示。
Collection <__NSArrayM: 0xxxxxxx> was mutated while being enumerated.
遇到這類錯誤的時候避诽,是同時對同一個數(shù)組進行了操作龟虎。
*這里說的是數(shù)組,其實別的類型的對象也出現(xiàn)這個問題沙庐,如:NSDictionary等*
下面一個簡單的出現(xiàn)這類錯誤的用法:
NSMutableArray * arrayTemp = xxx;
for (NSDictionary * dic in arrayTemp) {
if (condition){
[arrayTemp removeObject:dic];
}
}
應(yīng)該改為:
NSMutableArray * arrayTemp = xxx;
NSArray * array = [NSArray arrayWithArray: arrayTemp];
for (NSDictionary * dic in array) {
if (condition){
[arrayTemp removeObject:dic];
}
}
在對數(shù)組內(nèi)容進行改變的時候鲤妥,要靈活使用備份數(shù)組。