【发布时间】:2011-12-03 12:23:53
【问题描述】:
我有一个想要迁移到 ARC 的 OSX 应用程序。如果我将基本 SDK 设置为 10.7,一切正常。但是当我将它设置为 10.6 时它不起作用(因为它没有找到 _objc_release 等)。那么如何在启用 ARC 的情况下将我的应用部署到 10.6?
【问题讨论】:
标签: cocoa osx-snow-leopard automatic-ref-counting
我有一个想要迁移到 ARC 的 OSX 应用程序。如果我将基本 SDK 设置为 10.7,一切正常。但是当我将它设置为 10.6 时它不起作用(因为它没有找到 _objc_release 等)。那么如何在启用 ARC 的情况下将我的应用部署到 10.6?
【问题讨论】:
标签: cocoa osx-snow-leopard automatic-ref-counting
您将 SDK 设置为 10.7,但将部署目标设置为 10.6。
记住:
虽然可以使用 ARC 构建在 Mac OS X 10.6 和 iOS 4 上运行的程序,但在这些操作系统上无法使用归零弱引用。所有弱引用都必须在这里 __unsafe_unretained。因为非归零弱引用非常危险,所以在我看来,这种限制会显着降低 ARC 在这些操作系统上的吸引力。
【讨论】:
您可能会发现 PLWeakCompatibility 很有用。它允许您在 iOS 4 和 OS X 10.6 上使用 __weak 变量。
这里的源代码:https://github.com/plausiblelabs/PLWeakCompatibility
更多信息http://www.mikeash.com/pyblog/introducing-plweakcompatibility.html
【讨论】: