title: iPhone, objective c reassign and return pointer of method
body: <p>Hey guys, lately I have been asking quite a few questions about memory management on the iPhone. Fortunately things are getting clearer. But I still struggle when it gets more complex: So is there something wrong with this in terms of memory mangement? My question and suggestions are in the comments...</p>
  
  <pre><code>//I get a text from a textfield
  NSString *text = [[NSString alloc]initWithString:txtField.text];
  NSMutableString *newText = [self replaceDynamicRegex:text];
  [text release];
  ...
  
  //The method replaces regex it finds in the text. The regex part is just pseudo code
  //and I just interested in memory management
  -(NSMutableString*)replaceDynamicRegex:(NSString*)txt{
  
  NSString *currentTag = [NSString stringWithString:@"dynamiclyCreatedTag"];
  
  //As long as we find a particuar regex (just pseuo code here) we replace it 
  while (currentTag != NULL) {
  
     if([html stringByMatching:openingTag] == NULL){
        break;
     }
  
     //regular expression  
     currentTag = [NSString stringWithString:[html stringByMatching:theRegex]];
  
     //Get rid of the useless part of the currentTag pseudo code
     NSString *uselessTagPart = @"uselessRegex";
     //Reassignment of the pointer currentTag --&gt; ok to do this? cause I did not alloc]init]?
     //and instead used stringWithString wich then gets autoreleased 
     currentTag = [currentTag stringByReplacingOccurrencesOfRegex:uselessTagPart withString:@""];
  
     //Reassignment of the pointer html --&gt; Ok to do this? cause it is just a pointer and the 
     //object is being released after the method call (further up) 
     html = (NSMutableString*)[html stringByReplacingOccurrencesOfRegex:currentTag withString:replacementTag];  
     }
      //Do I need to autorelease this?
      return html;
  }
  </code></pre>