如何释放必须从方法返回的已分配对象

Vol*_*ort 1 memory-management objective-c

-(NSArray*)getSomeStuff {
    NSMutableArray *array = [[NSMutableArray alloc]init];
    // Add some objects to array
    return array;
}
Run Code Online (Sandbox Code Playgroud)

我分配了那个数组,所以我必须在某个时候释放它.但是,如果我需要它,我该如何释放它直到我返回它?

小智 5

用途autorelease:

return [array autorelease];
Run Code Online (Sandbox Code Playgroud)

它将在稍后发布,但调用者可能会retain取得所有权.

或者,您可以使用array类方法:

-(NSArray*)getSomeStuff {
    NSMutableArray *array = [NSMutableArray array];
    //...
    return array;
}
Run Code Online (Sandbox Code Playgroud)