描述:
在用swift重寫OC類庫時,需要對數據進行壓縮上傳數據,需要使用類庫#include <zlib.h>
,但Swift中并沒有提供類似的函數,因此需要借助modulemap方式引入供swift類使用。
解決方案:
-
創建framework使用swift開發語言
Paste_Image.png - 目前使用的是Gzip壓縮類庫,下載并將
Data+Gzip.swift
導入工程。 -
導入libz.tbd類庫
Paste_Image.png -
創建一個目錄,用來存放module.map信息,如下圖所示:
目錄類型為:
Paste_Image.png
Paste_Image.png - include.h文件中內容如下:
#include <zlib.h> // 此文件為gzip所使用的C類庫。如果有其他文件可依次導入
module.modulemap中內容如下:
module zlib [system] {
header "include.h" // 此文件為導入頭文件的文件名稱,此例子中為zlib目錄下的include.h文件
export *
}
-
添加類庫文件路徑
Build Setting->Swift Compiler – Search Paths下的Import Paths下添加$(SRCROOT)/TestFramework/zlib,類型為non-recursive,即module.map的目錄
Paste_Image.png
OK,完成后,能編譯成功代表沒有問題。