部署到OS X 10.6并且在使用旧运行时的平台上不支持“-fobj-arc”

时间:2013-12-03 20:53:35

标签: compilation automatic-ref-counting cpu-architecture computer-architecture objective-c-runtime

背景

我正在为OS X构建一个应用程序,部署目标为10.6。我没有完全将我的应用程序转换为ARC,但是我添加了一些可以从ARC中受益的新类,所以我为这些类设置了-fobj-arc编译器标志。

通用32/64位英特尔架构的编译失败,使用旧版运行时的平台不支持错误 -fobj-arc。

仅为64位构建成功。

我不熟悉低级架构。我的问题是:仅为64位Intel构建的影响是什么?这会阻止应用程序完全在10.6上运行吗?或者只有一些机器运行10.6?

1 个答案:

答案 0 :(得分:11)

OS X的Objective-C的32位运行时相当陈旧。 Apple将它们移动到64位时更新了运行时,但对32位运行时没有做太多。

至于仅64位的构建:大多数Mac现在都有64位处理器。但是,10.6确实支持32位计算机:将这些用户留在尘埃中。

I have created a header将有助于过渡到ARC,因为您可以在64位硬件上而不是在32位硬件上定位ARC,两者都可以。但是,这实际上违背了ARC的目的,因为您仍然需要管理保留和释放,在构建ARC代码时它们只会被注释掉。