在NSXML Parser中泄漏

时间:2011-06-13 03:47:17

标签: iphone

这段代码似乎存在内存泄漏。我正在使用它来解析XML数据。

- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI  qualifiedName:(NSString *)qualifiedName 
 attributes:(NSDictionary *)attributeDict
 {
 currentElement = [[elementName copy]autorelease];
if ([elementName isEqualToString:@"value1"]) {
    self.currentString =[NSMutableString string];
}


else if ([elementName isEqualToString:@"value2"]) {
    self.currentStringName =[NSMutableString string];
}
}   

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if ([currentElement isEqualToString:@"value1"]) {
    [currentString appendString:string];
}

else if ([currentElement isEqualToString:@"value2"]) {
    [currentStringName appendString:string];
}

}

 - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName 
  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
 {

if ([elementName isEqualToString:@"value1"]) {

    }
   else if ([elementName isEqualToString:@"value2"])
   {
   }

2 个答案:

答案 0 :(得分:1)

您可能想对“NSXMLParser泄漏”样式进行一些研究。像SDK的其他几个部分一样,NSXMLParser是一个破碎的大坝。我没有在你的代码中看到(之后,我必须说,快速浏览一下)任何泄漏...我的意思是与你在NSXMLParser中找到的相比。不幸的是,你无法对它们做任何事情。

因此,基本上,例如,如果Instruments报告您的代码泄漏,请不要as:NSXMLParser is responsible

如果有机会,请不要犹豫,保持对您创建的对象的控制(并避免自动释放),在我看来这样做更容易管理(但......有些人可能不同意!)。

答案 1 :(得分:0)

尝试使用其他XML解析器,如touchXML或KissXML。 NSXML Parser在框架内确实存在泄漏。