事情经过
今天编译公司老的oc项目因为我使用了swift,之前混编没有出错,直到我再podfile里面添加了use_frameworks!,因为有的第三方库要使用这句话,然后编译出现了20多条错误,
我的项目是oc项目,但是我要使用我的swift文件的代码.(如果着急直接看最下面的最终解决方案,上面是swift项目的方法,但是不能根本解决oc项目使用swift文件和库)
基本就是下面这些错误
Duplicate interface definition for class ‘AFHTTPResponseSerializer’
No type or protocol named ‘AFURLResponseSerialization’
Reference to ‘AFURLResponseSerialization’ is ambiguous
Duplicate interface definition for class ‘AFImageResponseSerializer’
主要原因
因为添加use_frameworks!以后swift项目会从静态库或者动态库里面编译第三方库.然后我再桥接文件 项目名-Bridging-Header.h 中又包含了一次 第三方库,所以导致重定义,编译器不知道到底要链接哪一个文件造成的错误,所以解决方法就是:在桥接文件中删除掉
//#import <AFNetworking/AFNetworking.h>
把重定义的AFNetworking 注释掉,这样因为podfile中有了use_frameworks!所以依然能找到链接的第三方库在哪里.
下面是出错的图


本文介绍了一个OC项目在引入Swift代码后遇到的编译错误及解决办法。主要原因是使用了use_frameworks!导致第三方库重复定义。解决方案是在Podfile中注释掉use_frameworks!,并在桥接文件中手动导入所需的第三方库。
最低0.47元/天 解锁文章
1334

被折叠的 条评论
为什么被折叠?



