如何放置编译器指令以排除非 ARC 代码,以便共享代码可用于使用 ARC 的项目和不使用 ARC 的项目?
例如:
MyClass *myClass = [MyClass alloc]init];
...
#if NOT_USING_ARC
[myClass release];
#endif
如何放置编译器指令以排除非 ARC 代码,以便共享代码可用于使用 ARC 的项目和不使用 ARC 的项目?
例如:
MyClass *myClass = [MyClass alloc]init];
...
#if NOT_USING_ARC
[myClass release];
#endif
您可以使用:
#if __has_feature(objc_arc)
...
#else
...
#endif
有一个重构可以将你的类转换为与 ARC 兼容。
在 XCode 菜单中:编辑 - 重构 - 转换为 Objective-C ARC。
另一种选择是通过-fno-objc-arc
为这些文件添加编译器标志来禁用单个文件的 ARC。
您在 Targets -> Build Phases -> Compile Sources 中添加编译器标志。您必须双击编译器标志下行的右列。您也可以通过按住 cmd 按钮选择文件,然后按 Enter 调出标志编辑框,将其添加到多个文件中。