Ваша проблема заключается в этом разделе кода:
retrievedAnalysisData = [[RetrievedAnalysisData alloc] init];
retrievedAnalysisData = [sortedRetrievedAnalysisDataList objectAtIndex:i];
[retrievedAnalysisIDarray addObject:retrievedAnalysisData.ID];
[retrievedAnalysisData release];
В первой строке выделяется новый RetrievedAnalysisData, но затем вторая отбрасывает его (пропускает) и помещает объект, извлеченный из массива, в переменную retrievedAnalysisData
. Вы не являетесь владельцем этого объекта, извлеченного из массива, и не становитесь владельцем, вызывая retain
. Таким образом, release
в четвертой строке неверно, освобождая объект, который вам не принадлежит.
Затем, когда вы отпускаете NSMutableArray, он пытается освободить объект снова, и вы получаете сбой, потому что объект уже освобожден.
Чтобы исправить это, избавьтесь от бесполезной первой строки, а также избавьтесь от неверного выпуска.