2012-05-17 110 views
2

如何将编译器指令放入非ARC代码中,以便共享代码可以与使用ARC的项目和不使用的项目一起使用?ARC的编译器指令

例如:

MyClass *myClass = [MyClass alloc]init]; 
... 

#if NOT_USING_ARC 

[myClass release]; 

#endif 
+3

的[检查ARC在预编译(http://stackoverflow.com/questions/7708267/check-for-arc-in-precompile) –

+0

为什么可能重复的是它是。我也会投票结束。 –

回答

3

您可以使用:

#if __has_feature(objc_arc) 
    ... 
#else 
    ... 
#endif 
+0

这就是我正在寻找的,但它是http://stackoverflow.com/questions/7708267/check-for-arc-in-precompile的确切副本。请投票结束此问题。 –

1

有,将转换你的类与ARC兼容的重构。

在XCode菜单中:编辑 - 重构 - 转换为Objective-C ARC。

另一种方法是通过为这些文件添加-fno-objc-arc编译器标志来禁用单个文件的ARC。

您在目标 - >构建阶段 - >编译源中添加编译器标志。您必须双击Compiler Flags下的右列。您也可以通过按住cmd按钮选择文件,然后按Enter键调出标志编辑框将其添加到多个文件。

+1

很好的答案。大多数人忽略了第一个选项... –

+0

我已经在其他地方使用这个选项,只需要知道如何执行内联编译器指令。 –