Будет ли пролить больше света, если я скажу, что fetchHTML вызывается в отдельном потоке? Я также вижу несколько сообщений в консоли отладки, таких как:
_NSAutoreleaseNoPool (): объект 0xd92860 класса NSCFDictionary автоматически освобожден без пула на месте - просто утечка
_NSAutoreleaseNoPool (): объект 0xd92800 класса NSCFString автоматически освобожден без пула - только утечка
Я новичок в разработке приложений для iPhone, Objective-C, но не новичок в программировании или C / C ++. Я использую инструмент производительности утечки, и он показывает много утечек. Это утечка в 10,5 Кбайт, и это происходит на линии:
NSString * xml = [NSString stringWithContentsOfURL:urlobj];
Трассировка стека на этом ниже:
stringWithContentsOfURL
initWithContentsOfURL
initWithDataOfEncoding
...
У кого-нибудь есть идея, почему это должно происходить? У меня сложилось впечатление, что я получаю объект автоматического выпуска и могу вернуть его вызывающей стороне без вызова сохранения. Я не использую объект xml для хранения в переменной экземпляра, просто для обработки.
Вот код функции:
- (NSString *) fetchHTML: (NSString* ) url{
@try
{
NSURL* urlobj = [NSURL URLWithString:url];
NSString * xml = [NSString stringWithContentsOfURL:urlobj];
return xml;
}
@catch( NSException *ex){
NSLog(@"Error fetchingHTML");
return nil;
}
return nil;
}