你好,我想知道是否有人可以给我一些关于内存管理的建议。
我有以下内容:
-(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 对象,请更改您的方法名称以保持一致。
关于objective-c - 这应该自动发布吗?或者有没有办法手动完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8553952/