ARC和非ARC文件混编

Posted 小敏的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ARC和非ARC文件混编相关的知识,希望对你有一定的参考价值。

在编程过程中,我们会用到很多各种各样的他人封装的第三方代码,但是有很多第三方都是在非ARC情况下运行的,当你使用第三方编译时出现和下图类似的错误,就说明该第三方是非ARC的,需要进行一些配置。

解决方法:

苹果文档Transitioning to ARC Release Notes有一种解决办法为:

  Use Compiler Flags to Enable and Disable ARC

  You enable ARC using a new -fobjc-arc compiler flag. You can also choose to use ARC on a per-file basis if it’s more convenient for you to use manual reference counting for some files. For projects that employ ARC as the default approach, you can disable ARC for a specific file using a new-fno-objc-arc compiler flag for that file.

具体操作步骤入下图:

技术分享

-fno-objc-arc 是非ARC文件在ARC环境下运行的编译器标志。

-fobjc-arc 是ARC文件在非ARC环境下运行的编译器标志。

 

以上是关于ARC和非ARC文件混编的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发之ARC与非ARC的设置

Objective-c开发教程--MRC和ARC混编

[iOS]ARC和MRC下混编

MRC和ARC混编 JSONKit的使用

带有块、ARC 和非 ARC 的 Objective C 内存管理

__block在ARC和非ARC下有什么不同