报错: Collection <__NSArrayM: 0x170052360> was mutated while being enumerated
原因: 在遍历数组的同时,对数组里面的内容进行修改,导致崩溃
解决方法: 先将这个数组赋值给一个tempArray,遍历tempArray时修改原数组
- (void)setCateTitles:(NSMutableArray *)cateTitles {
_cateTitles = cateTitles;
/// 需求:无论怎么修改频道分类数组,都要保持标题栏的前两位一直是<精彩推荐>和<全部直播>
/// 当每一次修改频道分类标题调用set方法时,进行判断,如果没有<精彩推荐>和<全部直播>就插入
NSArray *tempArray = [NSArray arrayWithArray:cateTitles];
NSInteger i = 0;
for (NSDictionary *dict in tempArray) {
NSString *value = [dict valueForKey:@"cname"];
if (i == 0 && ![value isEqualToString:@"精彩推荐"]) {
NSDictionary *dict1 = @{@"cname" : @"精彩推荐"};
[cateTitles insertObject:dict1 atIndex:0];
}
if (i == 1 && ![value isEqualToString:@"全部直播"]) {
NSDictionary *dict2 = @{@"cname": @"全部直播"};
[cateTitles insertObject:dict2 atIndex:1];
}
i++;
}
}