【问题标题】:XCode Automatic Reference Count (ARC) on OS 3.0OS 3.0 上的 XCode 自动引用计数 (ARC)
【发布时间】:2012-07-23 16:19:07
【问题描述】:

我正在使用 iOS SDK 5.1、Xcode 4.3.3。并开发一个启用自动引用计数 (ARC) 的项目。我读过 ARC 仅适用于 iOS 4 或更高版本。但是当我将部署目标设置为 OS 3.0 时,项目仍然可以正常编译。而且我正在使用带有 iOS 4.0 的设备进行测试,并且该应用程序在该设备上也可以正常工作。

我的问题是这个应用程序也能在 OS 3.0 实际设备上运行吗? (ARC 开启)。

如果它有效,为什么苹果说它只适用于 iOS 4 或更高版本?

【问题讨论】:

  • 我认为该项目会编译,因为您没有添加任何新内容,但不会自动为您放置任何发布调用,因此您可能会泄漏使用 alloc 创建的每个对象,复制,保留

标签: ios automatic-ref-counting


【解决方案1】:

只要您不使用__weak 变量,您的代码应该可以正常工作。 ARC 代码在底层编译为常规 MRC 代码,它只为您处理 retain/release/autorelease 代码。

【讨论】:

  • 感谢您的回复。但是如果我使用弱变量呢?它还会在运行时编译和泄漏内存吗?
  • 我刚刚测试过。 __weak 变量无法编译。如果我根本不使用 __weak 变量,那么在项目上使用 ARC 并将其部署到 OS 3.0 是否完全可以?这样做会在运行时泄漏内存吗?
  • @Sleepwalkerfx 没有。您的代码将在 iOS 3.x 设备上正常编译和运行,因为 ARC 只是编译器添加的附加层。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-21
  • 2012-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多