使用 ARC 时还需要释放内存吗? [复制]

Posted

技术标签:

【中文标题】使用 ARC 时还需要释放内存吗? [复制]【英文标题】:Do I still need to release any memory when using ARC? [duplicate] 【发布时间】:2012-04-17 23:04:47 【问题描述】:

可能重复:What kind of leaks does automatic reference counting in Objective-C not prevent or minimize?

我正在使用 XCode 4.3.2 并且始终使用 ARC,因为它对我来说非常有意义。 我创建的应用程序可以毫无问题地构建和编译。我知道新的编译器和 ARC 在处理内存管理方面非常聪明,但是有什么时候我需要在任何地方编写发布代码......任何已经“初始化”或“分配”的东西“通常?

谢谢,

天然气。

【问题讨论】:

.....我也对是否使用“强”、“弱”和“保留”感到困惑。我的代码工作正常,正如我所说,编译没有问题,但我不想使用我不需要的分配!谁能提供“外行”的解释????....非常感谢....Gaz。 谢谢布拉德,我现在就去看看!.....Gaz. 【参考方案1】:

简短回答:不。

更长的答案:使用 ARC 进行编译甚至不允许您释放/保留/自动释放任何对象。所以这应该不是问题,因为它会引发构建错误并且不会编译。 cmets 中的其他链接应该可以帮助您了解何时使用强/弱指针。您仍然可以在声明属性时使用非原子、保留/分配,它们将在编译时为您转换。所以你也总是有这个选择。

【讨论】:

这是一个真正的帮助比尔....非常感谢!我想知道“保留”参数,以及是否需要保留或其他将释放或销毁的不同的东西。我现在正在尝试阅读它,但它有点令人难以置信! 如果你打算使用 ARC,你不需要再考虑保留/释放/自动释放。编译器将为您完成所有这些工作。这是使用 ARC 最好的部分,您只需停止考虑内存。让我重复一遍,停止思考记忆。相信我,一旦你理解了这个概念,你会更快乐。祝你好运。

以上是关于使用 ARC 时还需要释放内存吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

iOS UIImageView 内存没有在 ARC 上被释放

iOS:ARC,不释放内存

移除对象时内存未释放 - 不清楚在 ARC 中释放的正确方法

C++随笔:内存类型

将 uiimage 设置为 nil 不会使用 ARC 释放内存

ARC 和dismissModalViewControllerAnimated:视图控制器内存未释放