ARC 如何确定是使用保留还是复制?
Posted
技术标签:
【中文标题】ARC 如何确定是使用保留还是复制?【英文标题】:How does ARC determine whether to use retain or copy? 【发布时间】:2012-06-29 15:34:23 【问题描述】:作为带有 ARC 选项的 LLVM 编译器会自动为我们添加保留、复制、释放和自动释放,但是 ARC 是如何确定使用保留还是复制的呢? 在此先感谢:)
【问题讨论】:
可能有帮助 ***.com/questions/6260256/… ***.com/questions/6385212/… @janusfidel 谢谢你,但这可能不是我想要的答案。 【参考方案1】:如以下文档中所述 (http://clang.llvm.org/docs/AutomaticReferenceCounting.html#meta)
Automatic Reference Counting 实现自动内存管理 对于 Objective-C 对象和块,将程序员从 需要显式插入保留和释放。它不提供 循环收集器;用户必须明确管理他们的生命周期 对象,手动中断循环或使用弱或不安全的引用。
你也可以通过这个线程的讨论 - How does the new automatic reference counting mechanism work?
【讨论】:
【参考方案2】:ARC 不添加copy
,如果您需要副本,那仍然是您的责任。它只为您管理retain
和release
。如果您手动 copy
某些东西,尽管它知道您获得了一个新对象,但它必须在某个时间释放。
【讨论】:
以上是关于ARC 如何确定是使用保留还是复制?的主要内容,如果未能解决你的问题,请参考以下文章