gpt4 book ai didi

iphone - NSXMLParser 解析方法内存泄漏

转载 作者:行者123 更新时间:2023-11-28 20:40:09 26 4
gpt4 key购买 nike

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

这是我的代码。

 - (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];

内存泄漏应该会被清除。

关于iphone - NSXMLParser 解析方法内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8900153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com