如何释放将返回给调用者的实例变量?

时间:2010-06-30 01:26:55

标签: iphone objective-c cocoa-touch

-(NSMutableArray *)processResult:(NSArray*)matchArray 
                removeString:(NSString *)removeStr{
    NSString *newLink;
    NSMutableArray *result = [[NSMutableArray alloc] initWithCapacity:[matchArray count]];
    //doing sth to result
    return result;
}

在这种情况下,结果变量将返回给调用者。调用者将在应用程序的生命周期内使用此变量。有没有办法释放这个方法中创建的?

1 个答案:

答案 0 :(得分:5)

使用memory management guide-lines,返回自动发布的实例:

NSMutableArray *result = [NSMutableArray arrayWithCapacity:[matchArray count]];
//doing sth to result
return result;

通过这种方式,来电者可以决定是否想要取得所有权。

根据指南,命名意味着该方法返回的内容:

  
      
  • 您拥有自己创建的任何对象。
  •   
  • 使用名称以“alloc”或“new”开头或包含“copy”的方法“创建”对象(例如,alloc,newObject或mutableCopy)。
  •   

对于您的方法名称,这不适用,因此应返回auto-released实例。