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

dav*_*vid 8 cocoa osx-snow-leopard automatic-ref-counting

我有一个OSX应用程序,我想迁移到ARC.如果我将基本SDK设置为10.7,一切正常.但是当我将它设置为10.6时它不起作用(因为它没有找到_objc_release等).那么如何在启用ARC的情况下将我的应用部署到10.6?

cat*_*lan 12

您将SDK设置为10.7,但将部署目标设置为10.6.

记住:

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

来源:自动参考计数

  • 我的2美分:访问不知道它们是否被释放的引用(使用__weak功能)对我来说似乎有点奇怪.您应该知道对象的生命周期,如果您不拥有要向其发送消息的对象,则应该知道更多.对我个人来说,没有__weak是没有问题的.在ARC之前,您不会在不知道您不拥有的对象是否仍然存在的情况下向对象发送消息.IMO(除少数例外)这是一个糟糕的编码实践. (4认同)

JK *_*iho 7

您可能会发现PLWeakCompatibility很有用.它允许您在iOS 4和OS X 10.6上使用__weak变量.

源代码在这里:https://github.com/plausiblelabs/PLWeakCompatibility
更多信息,请访问http://www.mikeash.com/pyblog/introducing-plweakcompatibility.html