В верхней части кода есть утечка памяти:
csvString = [[NSMutableString alloc] init];
csvString = [NSMutableString stringWithFormat:@"No.,Name,Type,MaskPAN,SwipeTime\n"];
Таким образом, вы выделяете память для изменяемой строки (строка 1), которая увеличивает количество сохраняемых данных на 1, а затем в строке2 вы теряете ссылку на указатель на это, потому что вы назначаете другую строку для указателя.Это наверняка утечет память;не уверен, что остальная часть вашего кода делает что-то плохое.
Поэтому удалите первую строку - это бесполезно и служит только для утечки памяти.
Кроме того, ваш [csvString release]
строка выглядит неправильно, потому что когда вы в последний раз присваивали что-то csvstring
, вы использовали [NSMutableString stringWithFormat]
, что не увеличивает счет сохранения (и, следовательно, вы не должны уменьшать его с помощью release
).Поэтому попробуйте удалить строку с надписью [csvString release];
.
Инструмент «Утечки» может показывать слегка сбивающие с толку ссылки на объект, который вы на самом деле не использовали;это вызвано тем, что эти объекты используются внутренне объектами, которые вы использовали (и утечка).