Swift、OC混编问题记录

2021-12

1. Pod私库<aa>的OC源码中使用<aa>-Swift.h的问题

本次介绍的编译问题,满足2个条件就会出现

  1. A.h 属于 podspec的public_header
  2. A.h使用了 #import "aa-Swift.h"

分析

A.h 依赖 aa-Swift.h, aa-Swift.h依赖aa.modulemap,aa.modulemap依赖整个aa编译完成. 导致循环

解决方法:

方法一:将A.h从public_header中移除

方法二:A.h必须导出的时候,就不能使用aa-Swift.h;如果用到的是class对象,使用@class向前声明替代;如果使用的是枚举,OC不支持枚举向前声明,支持改成基本类型了,比如Int。

特别的

个人能力有限,欢迎大家指出问题

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章