ARC forbids Objective-C objects in struct

错误提示:

ARC forbids Objective-C objects in struct
报错提示

错误原因:

  1. 自己的旧项目没有使用ARC,但是引入的第三方库却使用了ARC。

  2. 自己的新项目使用了ARC,但是引入的第三方库或者以前写的代码却没有使用ARC。

这两种情况下,肯定是通不过编译的。可以通过升级旧项目,让其使用ARC来解决,但这个办法有时候会很麻烦。

有一个简单的办法就是,可以指定单个文件是否采用ARC来进行编译。

方法就是找到 TargetSettings -> Build Phases -> Compile Sources
在 Compile Sources 里面找到需要特殊处理的文件,加上编译选项(Compiler Flags),具体针对上面两种情况有所区别。

解决方法:

  1. 对于第一种情况,给采用了ARC的源文件,添加 -fobjc-arc 选项。

  2. 对于第二种情况,给没有使用ARC的源文件,添加 -fno-objc-arc

添加编译选项
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ARC环境下,结构体使用objc对象的时候必须使用__unsafe_unretained
    管乐_VICTOR阅读 1,885评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,797评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,856评论 25 709
  • 自动引用计数(ARC)是一项编译器功能,可以给Objective-C提供自动内存管理的能力。ARC使得程序员能专注...
    hlwz5735阅读 5,632评论 0 3
  • 通过读取网页的响应码来试下异步编程。 首先使用最传统的方式来试一下,每次测试100下。 主要代码如下(3.5.2)...
    彩色系阅读 1,534评论 0 0