请参阅所附图片。如果它在这里不可见是代码
- (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];
}
泄漏仍然存在。