这段代码似乎存在内存泄漏。我正在使用它来解析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"])
{
}
答案 0 :(得分:1)
您可能想对“NSXMLParser泄漏”样式进行一些研究。像SDK的其他几个部分一样,NSXMLParser是一个破碎的大坝。我没有在你的代码中看到(之后,我必须说,快速浏览一下)任何泄漏...我的意思是与你在NSXMLParser中找到的相比。不幸的是,你无法对它们做任何事情。
因此,基本上,例如,如果Instruments报告您的代码泄漏,请不要as:NSXMLParser is responsible。
如果有机会,请不要犹豫,保持对您创建的对象的控制(并避免自动释放),在我看来这样做更容易管理(但......有些人可能不同意!)。
答案 1 :(得分:0)
尝试使用其他XML解析器,如touchXML或KissXML。 NSXML Parser在框架内确实存在泄漏。