2010-08-12 4 views
0

я получил утечка памяти в следующем фрагменте кода, когда я побежал мое приложение с инструментом ..памяти в Xml Parser внутри connectionDidFinishLoading

-(void)connectionDidFinishLoading:conn{ 
//[self.conn release]; 
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:myData]; 
[xmlParser setDelegate:self]; 
[xmlParser parse]; 
[xmlParser release]; 

}

, но я не мог понять, где именно утечка происходит .. Любые предложения

ответ

0

релиз MyData после инициации анализатор (только если он не является объектом autorelease):

NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:myData]; 
[myData release]; 

Также вы назначаете объект NSXMLParser. Вы можете автоматизировать его:

NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:myData]; 

Но это может освободить объект парсера, прежде чем вы закончите его использование.

Возможно, вам захочется вручную освободить его после завершения синтаксического анализа, и в этом случае вам, вероятно, придется объявить его в файле .h.