我不知道为什么此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
保留(我假设此处的属性为retain
或copy
),但是从其初始化起,其保留计数为+1。将行更改为:
self.results = [NSMutableArray array];
并且应该清除内存泄漏。