swift framework工程下调用Objective-C或C类库

描述:
在用swift重写OC类库时,需要对数据进行压缩上传数据,需要使用类库#include ,但Swift中并没有提供类似的函数,因此需要借助modulemap方式引入供swift类使用。

解决方案:

  1. 创建framework使用swift开发语言


    swift framework工程下调用Objective-C或C类库_第1张图片
    Paste_Image.png
  2. 目前使用的是Gzip压缩类库,下载并将Data+Gzip.swift导入工程。
  3. 导入libz.tbd类库


    Paste_Image.png
  4. 创建一个目录,用来存放module.map信息,如下图所示:
    目录类型为:


    swift framework工程下调用Objective-C或C类库_第2张图片
    Paste_Image.png

    swift framework工程下调用Objective-C或C类库_第3张图片
    Paste_Image.png
  5. include.h文件中内容如下:
#include   //  此文件为gzip所使用的C类库。如果有其他文件可依次导入

module.modulemap中内容如下:

module zlib [system] {
    header "include.h"  // 此文件为导入头文件的文件名称,此例子中为zlib目录下的include.h文件
    export *
}
  1. 添加类库文件路径
    Build Setting->Swift Compiler – Search Paths下的Import Paths下添加$(SRCROOT)/TestFramework/zlib,类型为non-recursive,即module.map的目录


    swift framework工程下调用Objective-C或C类库_第4张图片
    Paste_Image.png

OK,完成后,能编译成功代表没有问题。

代码参考:
https://github.com/ShaochongDu/SwiftFramework

Swift构建通用版本Framework以及Framework的使用及其注意事项

你可能感兴趣的:(swift framework工程下调用Objective-C或C类库)