У меня есть 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.'
Может ли кто-нибудь увидеть, что я делаю неправильно, и как это обойти, но при этом достичь функциональности, описанной выше?