【发布时间】:2012-02-04 08:03:26
【问题描述】:
我还没有使用 ARC,因为我目前正在处理的项目中的大部分代码都是在 iOS 5.0 之前编写的。
我只是想知道,不手动保留/释放的便利(以及由此产生的更可靠的代码?)是否超过使用 ARC 的任何“成本”? 您对 ARC 有哪些体验,您会推荐它吗?
所以:
- ARC 可以为项目带来多少好处?
- ARC 是否像 Java 中的垃圾回收一样有成本?
- 您是否使用过 ARC,如果使用过,到目前为止您是如何找到它的?
【问题讨论】:
-
ipad/ios 上没有垃圾回收。你说的是 OS X 吗?
-
抱歉,我使用了不合适的 Java 术语。我的意思是,使用 ARC,对象可以在内存中保存的时间超过必要的时间,然后在一段时间后作为一个组在自动释放池中释放。正是这种效果,它们与其他对象一起被保留和释放,类似于我所指的 Java 的垃圾收集。
-
@TenementFunster,对于相同的代码(减去对释放的调用),ARC 将持有对象的时间不会超过非 ARC 代码。实际上,它通常会比您更快地发布它。有少量的东西有点慢,但它们加速了常见的模式,以至于它对性能的影响相形见绌。对于许多常见模式(例如,保留一个通过自动释放返回的对象),您实际上无法像 ARC 那样快速地手动编写它。
标签: iphone objective-c ipad ios5 automatic-ref-counting