异常Crash之 NSGenericException,NSArray was mutated while being enumerated
2014-12-12 11:47
357 查看
*** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0x17542520> was mutated while being enumerated.'
从字面上不难理解,Crash的原因在于我们一边遍历数组,一边修改该数组数据。例如:
NSMutableArray *OriginalArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"3",@"4",nil];
for (id obj in OriginalArray){
if ([obj isEqualToString:@"3"]){
[OriginalArray removeObject:obj]
}
}
很自然我们会想到copy一个数组,在副本数组中进行遍历操作,如果符合条件我们就在原始数组中进行处理。
NSMutableArray *DuplicateArray = [OriginalArray mutableCopy];
for(id obj in DuplicateArray){
if ([obj isEqualToString:@"3"]){
[OriginalArray removeObject:obj];
}
}
从字面上不难理解,Crash的原因在于我们一边遍历数组,一边修改该数组数据。例如:
NSMutableArray *OriginalArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"3",@"4",nil];
for (id obj in OriginalArray){
if ([obj isEqualToString:@"3"]){
[OriginalArray removeObject:obj]
}
}
很自然我们会想到copy一个数组,在副本数组中进行遍历操作,如果符合条件我们就在原始数组中进行处理。
NSMutableArray *DuplicateArray = [OriginalArray mutableCopy];
for(id obj in DuplicateArray){
if ([obj isEqualToString:@"3"]){
[OriginalArray removeObject:obj];
}
}
相关文章推荐
- 解决 Crash:Collection <__NSArrayM: 0x61000024df50> was mutated while being enumerated
- nsarray was mutated while being enumerated
- Collection <__NSArrayM: 0xaf88c50> was mutated while being enumerated.的解决办法
- __NSArrayM: 0xb550c30> was mutated while being enumerated.-
- iOS_报错"Collection NSArrayM was mutated while being enumerated"
- *** Collection <__NSArrayM: 0x7f9fb3c48bc0> was mutated while being enumerated问题
- was mutated while being enumerated. 解决方法
- was mutated while being enumerated数组遍历时被修改
- 【转】was mutated while being enumerated 你是不是以为你真的懂For...in... ??
- 【学习ios之路:Objective-C错误】Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.
- iOS:编译错误 NSArrayM: 0x7fdbe0c70600> was mutated while being enumerated
- 报错:Collection <__NSCFDictionary: 0xc425570> was mutated while being enumerated.
- Collection <__NSCFDictionary: 0xc425570> was mutated while being enumerated.
- iOS - 解决was mutated while being enumerated
- ios- bug 解决:“was mutated while being enumerated”
- was mutated while being enumerated
- 【错误处理:】Collection <__NSArrayM: 0x12ec10e0> was mutated while being enumerated.
- 解决Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.
- 解决Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.-
- iOS之解决崩溃Collection <__NSArrayM: 0xb550c30> was mutated while being enumerated.