iOS - 活动监视器显示泄漏,即使在释放对象后也是如此

时间:2012-08-16 09:35:54

标签: iphone ios xcode ipad memory-leaks

请参阅附件中的图片。 如果它在这里不可见是代码

- (void)startParsingData:(NSString *)xmlDataString
{
    NSLog(@"parser started");
    // allocate NSXMLParser
    NSLog(@"XML DATA equals %@", xmlDataString);
    NSData* xmlData=[xmlDataString dataUsingEncoding:NSUTF8StringEncoding];
    dataParser = [[NSXMLParser alloc] initWithData:xmlData];
    // assign delegate to parser
    dataParser.delegate = self;
    // parse data
    [dataParser parse];
    // release parser
    [dataParser release];
    // release data
    //[xmlData release];
}

活动监视器显示以下行中存在泄漏 -

[dataParser parse];

我不明白。为什么?正如我已经发布了那个对象。

编辑:

我将方法更改为 -

- (void)startParsingData:(NSString *)xmlDataString
{
    NSLog(@"parser started");
    // allocate NSXMLParser
    NSLog(@"XML DATA equals %@", xmlDataString);
    NSData* xmlData=[xmlDataString dataUsingEncoding:NSUTF8StringEncoding];
    [[NSURLCache sharedURLCache] setMemoryCapacity:0];
    [[NSURLCache sharedURLCache] setDiskCapacity:0];
    dataParser = [[NSXMLParser alloc] initWithData:xmlData];
    // assign delegate to parser
    dataParser.delegate = self;
    // parse data
    [dataParser parse];
    // release parser
    [dataParser release];
    // release data
    //[xmlData release];
}

仍有泄漏。

enter image description here

1 个答案:

答案 0 :(得分:1)

尝试使用:

[[NSURLCache sharedURLCache] setMemoryCapacity:0];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
dataParser = [[NSXMLParser alloc] initWithContentsOfURL:URL];

似乎在这些问题上阻止了人们的泄密:

Got memory leak problem when i used NSXMLParser same as SeismicXML Example

Can't find the leak in this Objective-C NSXMLParser code?

相关问题