У меня есть приложение, которое использует библиотеку TouchJSON target-C, и я запускаю профилировщик Instruments для утечек памяти и утечек в том источнике, которые я не могу понять, как исправить. Я должен упомянуть, что я довольно плохо знаком с Какао и целью-C. Instruments показывает, что утечка происходит в методе со следующей подписью:
- (BOOL)scanJSONStringConstant:(NSString **)outStringConstant error:(NSError **)outError
... и утечка происходит именно в этом блоке кода:
if (self.options & kJSONScannerOptions_MutableLeaves)
{
*outStringConstant = [theString autorelease];
}
else
{
*outStringConstant = [[theString copy] autorelease]; //LEAK IS HAPPENING HERE
[theString release];
}
Я пробовал множество исправлений, чтобы попытаться избавиться от утечки, но безуспешно. Может ли кто-нибудь, пожалуйста, обучить меня:
1) Почему это утечка
... и ...
2) Как это исправить
Я знаком с зачатками управления памятью target-C («Если вы выделяете, копируете или новый ... релиз зависит от вас»), поэтому мне не нужен целый учебник по основам - просто некоторое понимание того, почему это протекает.
Заранее спасибо за любую помощь.
РЕДАКТИРОВАТЬ: Прикрепление изображения отладочной информации.