在使用TBXML和ARC解析URL中的大型xml文件时出现内存泄露

问题描述:

我正在使用TBXML解析URL中的XML文件,并且我已经打开了ARC。但我得到了以下代码的内存泄漏:在使用TBXML和ARC解析URL中的大型xml文件时出现内存泄露

- (void)readXmlFromUrl:(NSString*)url 
{ 
    NSURL *aUrl = [NSURL URLWithString:url]; 
    NSData *data = [[NSData alloc] initWithContentsOfURL:aUrl]; 
    TBXML *tbxml = [[TBXML alloc] initWithXMLData:data]; 
// data = nil; 
// NSLog(@"Reading from %@", url); 
    // If TBXML found a root node, process element and iterate all children 
    if (tbxml.rootXMLElement) { 
     NSLog(@"Root Found"); 
     [self traverseElement:tbxml.rootXMLElement]; 
    } 

// data = nil; 
// aUrl = nil; 
// tbxml = nil; 
// NSLog(@"Retain count for TBXML %d", tbxml.retainCount); 
} 

我附加了内存泄漏的图像。 在此先感谢 enter image description here

+0

你确定你正在运行的静态分析时ARC建筑? ARC可能只在某些配置中打开,但分析使用不同的配置。 –

+0

我在创建项目时将ARC打开 – Avigit

不是泄漏,但可能是静态分析器中的错误。

我的答案是假的没有看到你正在使用ARC

+0

他使用ARC,因此不需要显式autorelease。 –

+1

啊是的,为什么弧会显示这样的警告 - ARC ==不是我的工作要发布。采取点。很高兴我不使用ARC。 –