Please see the image attached. If its not visible here is the code
- (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];
}
The activity monitor shows that there is leak in the following line -
[dataParser parse];
I don't understand. Why? As I have released that object.
EDIT :
I changed the method to -
- (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];
}
Still the leak is there.