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。

特別的

個人能力有限,歡迎大家指出問題

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