Обновление: Пока прибор Leaks указывает на первый вызов [parser parse];
, я обнаружил, что утечка происходит только при повторном вызове.В справочнике или документации по классу NSXMLParser я не вижу ничего, что указывало бы на невозможность повторного анализа.Я что-то пропустил?Должен ли я создавать новый NSXMLParser для каждого раза, когда я хочу проанализировать документ?
В настоящее время я пытаюсь отследить утечку в моем коде парсинга xml для приложения iPhone.Я искал другие сообщения о утечках с помощью NSXMLParser, но не нашел ни одного ответа, который мог бы использовать, поэтому я был бы очень признателен за помощь.
Инструмент инструментов Утечки обнаруживает утечку в следующем коде:
NSData* data = [NSData dataWithContentsOfFile: [[NSBundle mainBundle] pathForResource: @"collisionGraph" ofType: @"graphml"]];
NSXMLParser* parser = [[[NSXMLParser alloc] initWithData: data] autorelease];
[parser setDelegate:self];
[parser parse]; <<<<< leak here according to Leaks
self.currentPass++;
...
[parser parse];
self.currentPass++;
Я удалил весь код из своих методов обратного вызова делегата, но это не остановило утечку.
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict
{
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
{
}
Вот представление в инструментах http://i22.photobucket.com/albums/b311/Erithil/ParserLeak.png (связано, потому что у меня нет представителя для публикации изображений).
Я действительно озадачен этим, поэтому любые предложения приветствуются.Заранее спасибо.