-1

可能重复:
如何在启用 ARC 的情况下部署到 Snow Leopard

引用 Hillegas Book on Cocoa Programming for Max OS X 的内存管理章节

在 Mac OS 10.7 和 iOS 5 中引入的新解决方案是自动引用计数,通常称为 ARC。ARC 依赖于原始的保留计数机制,但有一个转折:编译器为您管理保留计数的簿记。

我正在编写一个必须与 10.5 及更高版本兼容的 Max OS X 应用程序,直到 10.8。因此,基于上述内容,我的理解是,如果 ARC 在 10.7 中引入,这是否意味着如果我在 ARC 的 10.7 平台上构建我的应用程序,该应用程序将无法在 10.5 和 10.6 上运行?因为 ARC 功能是在 10.7 中引入的

如果应用程序必须与 10.5/6/7/8 兼容,我应该使用什么内存管理

还有一点可能很重要,我的后端主要是 C++(我知道我必须自己管理 C++ 内存,而不是依赖于 ARC)和 Objective-C 的前端

我的开发平台是 10.7 Lion / Xcode 4.3

请高人指点一下。

编辑 从评论中我了解到 ARC 也依赖于运行时支持,这基本上意味着它不适合我的情况。无论如何,10.5也不支持它,所以我应该进行手动内存管理吗?

4

2 回答 2

1

我会选择MRR。

ARC 的任何部分在 10.6 之前的 OS X 版本上不可用。清零弱引用需要 10.7。

在此处查看 Apple ARC 可用性矩阵。

The Snow Leopard version of Xcode 4.2 doesn’t support ARC at all on OS X, because it doesn’t include the 10.7 SDK. Xcode 4.2 for Snow Leopard does support ARC for iOS though, and Xcode 4.2 for Lion supports both OS X and iOS. This means you need a Lion system to build an ARC application that runs on Snow Leopard.

于 2013-02-03T23:24:05.260 回答
0

ARC 是一个 SDK 功能,只要您使用 10.7+ SDK 进行编译,大多数功能都可以在较旧的操作系统上使用。

相关:如何在启用 ARC 的情况下部署到 Snow Leopard

虽然可以使用 ARC 构建在 Mac OS X 10.6 和 iOS 4 上运行的程序,但在这些操作系统上无法使用归零弱引用。所有弱引用都必须在这里 __unsafe_unretained。因为非归零弱引用非常危险,所以在我看来,这种限制显着降低了 ARC 在这些操作系统上的吸引力。

哦,仅在 10.6 及更高版本上。不支持豹。

于 2013-02-03T21:51:17.047 回答