objective-c - 这应该自动发布吗?或者有没有办法手动完成?

标签 objective-c ios xcode memory-management

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

我有以下内容:

-(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/

相关文章:

objective-c - CAOpenGLLayer 已裁剪图像

ios - 如何在 Ionic 3 应用程序中启用 "Sign in with Apple Id"

ios - Coregraphics (iOS) 中的内存管理

ios - 如何在没有 StoryBoard 的情况下以编程方式将单元格添加到 CollectionView

json - 从 Swift 中选定的下拉选项中获取数据

swift - 线程 9 : EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, 子代码=0x0) firebase

ios - Xcode 10 生成的 Assets.car 比 Xcode 9 大?

ios - FFmpeg iOS 从 AVFrame 获取 UIImage

iphone - 在 Objective C 中创建链表

ios - Social.framework Facebook 的可能性