相关疑难解决方法(0)

收集在目标C中被枚举错误时发生变异

以下是我的代码.

NSMutableArray *arr = [[NSMutableArray alloc] init];
[arr addObject:@"5"];
[arr addObject:@"7"];
[arr addObject:@"8"];
[arr enumerateObjectsUsingBlock:^(NSString *obj,NSUInteger idx,BOOL *stop) {
        [arr replaceObjectAtIndex:idx withObject:@"10"];
}];
Run Code Online (Sandbox Code Playgroud)

我得到的异常日志

 *** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0x742a580> was mutated while being enumerated.'
*** First throw call stack:
(0x1596012 0x12a3e7e 0x161ecc5 0x158fe1b 0x158fa16 0x158f925 0x2ba4 0x1e87b7 0x1e8da7 0x1e9fab 0x1fb315 0x1fc24b 0x1edcf8 0x25f8df9 0x25f8ad0 0x150bbf5 0x150b962 0x153cbb6 0x153bf44 0x153be1b 0x1e97da 0x1eb65c 0x29fd 0x2925)
libc++abi.dylib: terminate called throwing an exception
Run Code Online (Sandbox Code Playgroud)

当我使用for循环时,代码工作正常

for (int …
Run Code Online (Sandbox Code Playgroud)

objective-c nsmutablearray

6
推荐指数
2
解决办法
3万
查看次数

标签 统计

nsmutablearray ×1

objective-c ×1