您好,我想知道是否有人可以给我一些有关内存管理的建议。
我有以下内容:
-(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对象,请更改方法名称以使其保持一致。