iOS - 解决was mutated while being enumerated
2016-12-14 20:17
856 查看
reason: '*** Collection <__NSArrayM: 0x610000253e30> was mutated while being enumerated.'
原因:
在遍历数组的同时删除了数组中的元素OC语法规定,不能在遍历数组的时候删除数组中的元素
解决方案
例如下面的代码,在遍历images的时候删除了images中的元素for (UIImage *image in self.images) { if (image.size.width > 100) { // 将图片从数组中移除 [self.images removeObject:image]; } }
我们可以再搞一个数组来存放要删除的图片
/** 存放要删除的图片 */ @property(nonatomic, strong) NSMutableArray *deleteImages;
- (NSMutableArray *)deleteImages { if (_deleteImages == nil) { _deleteImages = [NSMutableArray array]; } return _deleteImages; }
在遍历完images后再遍历deleteImages来删除images中要删除的图片,最后将deleteImages清空
for (UIImage *image in self.images) { if (image.size.width > 100) { // 将图片从数组中移除 [self.images removeObject:image]; } }
// 遍历数组
for (UIImage *image in self.deleteImages) {
// 删除images数组中的元素
[self.images removeObject:image];
}
// 删除deleteImages数组中的图片
[self.deleteImages removeAllObjects];
相关文章推荐
- ios- bug 解决:“was mutated while being enumerated”
- iOS之解决崩溃Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.
- iOS之解决崩溃Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.
- 解决Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.
- 【Bug-iOS】Collection <__NSArrayM: 0x> was mutated while being enumerated.
- 【学习ios之路:Objective-C错误】Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.
- 解决 Crash:Collection <__NSArrayM: 0x61000024df50> was mutated while being enumerated
- 解决Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.-
- 解决Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.-
- Bug-iOS: Collection <__NSArrayM: 0x> was mutated while being enumerated.
- iOS:编译错误 NSArrayM: 0x7fdbe0c70600> was mutated while being enumerated
- was mutated while being enumerated. 解决方法
- Collection <__NSArrayM: 0xaf88c50> was mutated while being enumerated.的解决办法
- 解决Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.-
- iOS 报错Collection <__NSArrayM: 0x7fdf0b8154c0> was mutated while being enumerated.'
- 解决Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.-
- 解决Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.-
- 解决Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated
- Bug-iOS: Collection <__NSArrayM: 0x> was mutated while being enumerated.
- nsarray was mutated while being enumerated