オブジェクトのリストを保持している 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.'
誰が私が間違っているのか、どうすればこれを回避できますか?それでも、上記の機能を実現できますか?