swift framework工程下调用Objective-C或
2017-05-05 本文已影响151人
RunningDu
描述:
在用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,完成后,能编译成功代表没有问题。