我不知道为什么此NSXMLParser parse方法正在泄漏。
我看了另一个类似的问题,但无法解决。

这是我的代码。

 - (void)parseXMLFileAtURL {
self.results = [[NSMutableArray alloc] init];

NSURL *xmlURL = [NSURL URLWithString:@"http://www.dukascopy.com/swiss/video/rss/"];
    NSData *dataXml = [[NSData alloc] initWithContentsOfURL:xmlURL];
NSXMLParser *MyrssParser = [[NSXMLParser alloc] initWithData:dataXml];
[dataXml release];

[MyrssParser setDelegate:self];


[MyrssParser setShouldProcessNamespaces:NO];
[MyrssParser setShouldReportNamespacePrefixes:NO];
[MyrssParser setShouldResolveExternalEntities:NO];

[MyrssParser parse]; // memory leak here
MyrssParser.delegate=nil;
[MyrssParser release];
if(!imagesArray)
{
    imagesArray = [[NSMutableArray alloc] initWithCapacity:[self.results count]];
    for(int i=0;i<[results count];i++)
    {
        UIImage *image = [UIImage imageNamed:@"nophoto.png"];
        [imagesArray addObject:image];
        bImgExist[i] = NO;
    }
}

  }


即使释放我的NSXMLParser对象工具后,仍然显示内存泄漏。
我在这里想念的..

最佳答案

self.results = [[NSMutableArray alloc] init];


属性具有分配值的所有权(根据其声明)。因此,您将此属性设置为的数组将由self保留(我假设此处的属性为retaincopy),但是从其初始化起,其保留计数为+1。

将行更改为:

self.results = [NSMutableArray array];


并且应该清除内存泄漏。

10-08 05:28