您好,我想知道是否有人可以给我一些有关内存管理的建议。

我有以下内容:

-(NSMutableArray*)addAllObjectesInbetween:(NSMutableArray*)betweenTheTwo{

    NSMutableArray* toReturn = [betweenTheTwo mutableCopy];
    [toReturn insertObject:@"oneObject" atIndex:1];

    return toReturn;
}


现在我知道了,因为我正在创建mutableCopy,所以必须释放toReturn,但是由于将返回到另一个函数,因此我不确定该怎么做。我不想因为它已发送而将其释放,但是如果以后尝试释放它,它将不会被调用。所以我当时想在autorelease上添加mutableCopy,但是我不确定这是否是最好的选择……有人可以帮我吗?谢谢!

最佳答案

是的,那是最好的事情。您还可以在返回时添加它:

return [toReturn autorelease];


这是因为按照惯例,如果您的方法不是以init或(包含)copy开头,则它必须返回一个自动释放的对象。如果要返回+1对象,请更改方法名称以使其保持一致。

09-25 18:51