Ill*_*lep 1 iphone objective-c automatic-ref-counting
在启用ARC的项目中,是否有一种方法可以在-fno-objc-arc代码中以编程方式添加标记.
所以我可以将我的源文件提供给其他人,并且该人不需要-fno-objc-arc手动添加.
我认为这是因为您希望将项目分发为可重用的库,可以在其他项目中使用,无论它们是否使用ARC?
我不认为您可以将标志添加到源以告知ARC忽略该文件(至少我还没有找到方法),但您可以检测是否在文件中启用了ARC
#if __has_feature(objc_arc)
...
#endif
Run Code Online (Sandbox Code Playgroud)
你可以用这个来提出警告
#warning This file is not ARC compatible, add the -fno-objc-arc tag
Run Code Online (Sandbox Code Playgroud)
但更优雅的解决方案是使用此功能在编译时自动分支代码,以便它可以在ARC和非ARC构建上运行.
我写了一个简单的可重用标头,可以粘贴到源文件的顶部或作为独立的头文件包含在项目中:
https://gist.github.com/1563325
这提供了一堆宏来使用而不是保留,释放和自动释放方法,以便它们可以自动剥离为ARC构建.有关如何使用它的示例,请查看iRate:
https://github.com/nicklockwood/iRate/tree/master/iRate
以这种方式转换类文件只需要几分钟.
| 归档时间: |
|
| 查看次数: |
885 次 |
| 最近记录: |