目标 C 和 ARC

Posted

技术标签:

【中文标题】目标 C 和 ARC【英文标题】:Objective C and ARC 【发布时间】:2013-04-03 19:36:17 【问题描述】:

首先,我是 Objective C 的新手,我在互联网上阅读了一些内容。在 ios 和 MAC 上,我可以在没有任何内存管理知识(如释放、保留、自动释放等)的情况下使用 ARC。在 MAC 上的某些地方我可以使用 ARC,但在 iOS 上我需要手动管理,在某些地方它说我可以在 iOS 上使用 ARC 但我需要做一些手动管理。那么什么是正确答案呢?

【问题讨论】:

您可以在 iOS 上使用 ARC。您不需要任何有关发布和保留等方面的先验知识,但了解它会有所帮助 所以我在使用 ARC 时不需要了解任何内存管理,对吗?你能告诉我什么是强、弱、复制吗? 是的 arc 会为你处理内存管理。简而言之,强/弱是:当对一个对象的所有强引用都消失(设置为 nil)时,一个对象将被删除,即使仍然有指向该对象的弱引用。一个对象只有在至少有 1 个强引用时才会存在。 afaik 如果未指定,则默认为强 A owns B 表示AB 具有强引用,而B 可能A 具有弱引用。 我们可以说:对象 a 有对象 b。所以当我们实现的时候,我们会写@property (strong) OBJ *objecta; ?我应该什么时候使用(强、弱、复制、分配)? 【参考方案1】:

Xcode 4.2 支持 OS X v10.6 和 v10.7(64 位应用程序)以及 iOS 4 和 iOS 5。OS X v10.6 和 iOS 4 不支持弱引用。

来源:Transitioning to ARC release notes

【讨论】:

以上是关于目标 C 和 ARC的主要内容,如果未能解决你的问题,请参考以下文章

ARC 迁移器在其他目标中返回错误

目标 c:使用 NSTimer 对象进行内存管理

目标 C - 随机选择 XIB

ARC 和桥接铸件

连接 C 与背景中的 ARC 津津乐道对象

ARC 085 NRE