请参阅附件中的图片。 如果它在这里不可见是代码
- (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];
}
仍有泄漏。
答案 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