网上有一些做法可以解决这个问题:1.将自己的ARC项目转换成non-ARC项目。 2.或者将第三方类库编译成framework的形式。
这些做法都太麻烦了,其实我们只需要在XCode中设置源代码的Compiler Flags就能让ARC和non-ARC文件共存。 点击Project->Targets->Build Phases标签->展开Compile Sources,双击某个.m文件的文件名,然后加上“-fno-objc-arc”这个标记,就可以指定此.m文件按照non-ARC方式编译。对应的如果加上“-fobjc-arc”标记,就可以指定.m文件按照ARC方式编译。
另外还有一个很有用的技巧:在源代码中用__has_feature来判断是否是ARC或者non-ARC。 如以下代码,如果此代码的源文件不是按照ARC方式编译,就会报错。
转载于:https://my.oschina.net/GfXFJnifklm/blog/174288