我有一个包含对象列表的 NSMutableArray。我想要做的是遍历这个对象列表,并为我要插入的对象找到匹配的对象。一旦找到匹配的对象,我就想简单地用我要插入的对象替换当前列表中的对象。我正在尝试使用快速枚举来做到这一点:
TestResult *result = [[TestResult alloc] init];
[result setName:name];
[result setScore:score];
[result setDateStamp:date];
for (TestResult *checkTest in [DataModel sharedInstance].testResultList) {
NSInteger indx = [[DataModel sharedInstance].testResultList indexOfObjectPassingTest:^BOOL(TestResult *obj, NSUInteger idx, BOOL *stop) {
return [obj.name isEqualToString:name];
}];
if (indx != NSNotFound) {
[[DataModel sharedInstance].testResultList replaceObjectAtIndex:indx withObject:result];
}
}
不幸的是,当我运行上面的代码时,我收到以下错误:
*** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0x9624820> was mutated while being enumerated.'
谁能看到我做错了什么,如何解决这个问题,同时实现我上面描述的功能?