你好我想知道是否有人可以给我一些关于内存管理的建议。
我有以下内容:
-(NSMutableArray*)addAllObjectesInbetween:(NSMutableArray*)betweenTheTwo{
NSMutableArray* toReturn = [betweenTheTwo mutableCopy];
[toReturn insertObject:@"oneObject" atIndex:1];
return toReturn;
}
现在我知道因为我正在制作一个我必须释放toReturn
的mutableCopy但是我不知道该怎么做,因为它被返回到另一个函数。我不想释放它是因为它被发送,但如果我尝试释放它后,它只是没有被调用。所以我在考虑将autorelease
添加到mutableCopy
,但我不确定这是否是最好的事情......有人可以帮我一把吗?谢谢!
答案 0 :(得分:2)
是的,这是最好的事情。您也可以在返回时添加它:
return [toReturn autorelease];
这是因为按照惯例,如果您的方法不以init
或(包含)copy
开头,则必须返回自动释放的对象。如果要返回+1对象,请更改方法名称以使其保持一致。
答案 1 :(得分:1)
您应该自动释放toReturn
,或者将您的功能重命名为copy
,例如copyAllObjectsInBetween:
,或mutableCopy
,例如mutableCopyAllObjectsInBetween:
。