title: memory leak when parsing data
body: <p>I am trying to parse a an xml file. I am creating an array of dictionaries and then with these created arrays I am creating array with arrays. I am having memory leaks when I am copying my nsdictionary into array. can any one please help!!
  Thanks</p>
  
  <p><img src="https://i.stack.imgur.com/b07Pz.png" alt="enter image description here"></p>
  
  <pre><code>- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
  
  if(parseMode == 1){
      //        NSLog(@"found this start tag: %@", elementName);
      if ([elementName isEqualToString:@"Group"]) {
          [tInState removeAllObjects];
      }
      else if ([elementName isEqualToString:@"State_Name"]) {
          tData = [[NSMutableDictionary alloc] init];
          xmlItem = 0;
      }
      else if ([elementName isEqualToString:@"T_Name"]) {
          xmlItem = 1;
      }
      else if ([elementName isEqualToString:@"T_Address"]) {
          xmlItem = 2;
      }
      else if ([elementName isEqualToString:@"T_Ph"]) {
          xmlItem = 3;
      }
  }
  </code></pre>
  
  <p>}</p>
  
  <pre><code>- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{     
  
  if (parseMode == 1) {
      //    NSLog(@"found this end tag: %@", elementName);
      if([elementName isEqualToString:@"T_Info"]) {            
          [tInState addObject:[tData copy]];
          [tData autorelease];
      }
      else if ([elementName isEqualToString:@"Group"]) {
          [tlist addObject:tInState];
  
      }                      
  }
  </code></pre>
  
  <p>}</p>
  
  <pre><code>- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
  
  if (parseMode == 0) {
      [self addToStateList:string];   
  }
  else  if (parseMode == 1) {
      //       NSLog(@"found this character: %@", string);
      switch (xmlItem) {
          case 0:               
              [tData setValue:string forKey:@"State_Name"];
              break;
          case 1:               
              [tData setValue:string forKey:@"T_Name"];
              break;
          case 2:               
              [tData setValue:string forKey:@"T_Address"];
              break;
          case 3:               
              [tData setValue:string forKey:@"T_Ph"];
              break;
          default:
              break;
      }        
  }
  </code></pre>
  
  <p>}</p>
  
  <p>Here tInState, tInState are nsmutablearray which I allocated in viewdidload function and released in releaseMemory. I went through the NScopy documents and it says when we use copy the ownership is transferred. I am releasing all my arrays so why is it still causing the problem??</p>
  
  <p>Please help with this.
  Thanks</p>