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

在这种情况下,结果变量将返回给调用者。调用者将在应用程序的整个生命周期中使用这个变量。有什么方法可以释放在这个方法中创建的?如何释放将返回给调用者的实例变量?

+0

小问题,但它有助于让术语正确。 'result'不是一个实例变量,它是一个局部变量。 – JeremyP 2010-06-30 08:00:47

回答

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实例应该退还。