【发布时间】:2012-01-06 07:00:38
【问题描述】:
我要为 iphone 4.X 编写应用程序,我必须快速实现它。我读到自动引用计数 (ARC) 管理内存,因此它将节省我的时间。我已阅读 this 文章,其中说 ARC 也适用于 iOS 4.3。 有没有人这样的做法,它会有效地管理我的应用程序内存多少? 谢谢。
【问题讨论】:
标签: ios automatic-ref-counting
我要为 iphone 4.X 编写应用程序,我必须快速实现它。我读到自动引用计数 (ARC) 管理内存,因此它将节省我的时间。我已阅读 this 文章,其中说 ARC 也适用于 iOS 4.3。 有没有人这样的做法,它会有效地管理我的应用程序内存多少? 谢谢。
【问题讨论】:
标签: ios automatic-ref-counting
Flanfl 的回答不正确。
iOS 4 确实支持ARC,但不支持自动弱引用归零。也称为“ARClite”。
请参阅 Apple 关于“Objective-C Feature Availability Index”的文档。
在 StackOverflow.com 上查看其他问题: Is ARC really supported in iOS 4? The iOS 4.2 SDK is missing ARC-related symbols at linking time
顺便说一下,版本 4.2.1 是 iOS 4 的最新版本,可在所有不支持 iOS 5 和 6 的设备上运行。具体来说,在 iPhone 3G 和 iPod touch (2G) 上运行版本 4.2.1 是支持的最高操作系统。这是根据我对这个维基百科页面的阅读,List of iOS Devices。
至于最初的问题:是的,ARC 消除了在大多数常见应用中调用 retain 和 release 的需要。这使您更容易管理内存。 Apple 强烈建议将 ARC 用于新项目和可以适当重构的旧项目。
在 Apple 的 iOS developer web site 中,查看文档和 WWDC 视频,了解 ARC 的详细信息以及如何在您的应用中使用它。例如,Transitioning to ARC Release Notes。
尤其是在 iOS 4 中,您应该将类的 dealloc 方法中的所有 outlet 引用设置为零。
【讨论】:
如果您在互联网上环顾四周,据说 ARC 适用于 iOS 5 http://developer.apple.com/technologies/ios5/
但是,如果您在项目中使用 ARC,则该应用程序将适用于 iOS 4 和 5。
这里是关于 ARC 的讨论: Some questions about Automatic Reference Counting in iOS5 SDK
【讨论】: