如何解决NSXML分析器中泄漏
| 这段代码似乎有内存泄漏,我正在用它来解析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\"])
{
}
解决方法
您可能需要对样式“ NSXMLParser泄漏”进行一些研究。像其他一些SDK一样,NSXMLParser是一个破烂的坝。我没有在您的代码中看到泄漏(必须快速浏览一下),而与NSXMLParser中的泄漏相比,我的意思是。不幸的是,您无法对它们做任何事情。
因此,基本上,例如,如果Instruments公司正在报告您的代码泄漏,请不要羞愧:NSXMLParser负责。
如果有机会,不要犹豫,保持对所创建对象的控制(并避免自动释放),我认为这是更容易管理的方式(但是...有些人可能会不同意!)。
, 尝试使用其他XML解析器,例如touchXML或KissXML。 NSXML Parser确实在框架内部存在泄漏。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。