错误提示:
ARC forbids Objective-C objects in struct
![](https://img.haomeiwen.com/i329784/4b6555f86507fad4.png)
错误原因:
-
自己的旧项目没有使用ARC,但是引入的第三方库却使用了ARC。
-
自己的新项目使用了ARC,但是引入的第三方库或者以前写的代码却没有使用ARC。
这两种情况下,肯定是通不过编译的。可以通过升级旧项目,让其使用ARC来解决,但这个办法有时候会很麻烦。
有一个简单的办法就是,可以指定单个文件是否采用ARC来进行编译。
方法就是找到 TargetSettings -> Build Phases -> Compile Sources
在 Compile Sources 里面找到需要特殊处理的文件,加上编译选项(Compiler Flags),具体针对上面两种情况有所区别。
解决方法:
-
对于第一种情况,给采用了ARC的源文件,添加
-fobjc-arc
选项。 -
对于第二种情况,给没有使用ARC的源文件,添加
-fno-objc-arc
。
![](https://img.haomeiwen.com/i329784/02e26adde1b33e5d.png)
网友评论