我希望能够对Swift3数据结构进行充气/放气。我找到了GzipSwift,但尚不清楚如何将其提供给我的iOS应用。我尝试过的幼稚的事情包括:

  • Data+Gzip.swift文件复制到我自己的项目中。然后,它抱怨该文件顶部的import zlib。我认为这与相同来源的zlib目录中的modulemap文件有关。但是我不确定在自己的项目中用什么或如何重新创建它们。
  • 从github克隆存储库,打开XCode并内置(基本上按了运行按钮)。然后尝试将其作为链接库或框架添加到我自己的项目中。我敢肯定,只是选择存储库的顶级目录不是我想要做的,但我不知道还要尝试什么。

  • 我在那里找到了其他一些代码,但是它似乎已经过时并且相对于Swift2。

    最佳答案

    最近,我不得不将确切的库和文件添加到我的项目中,经过大量的故障排除后终于使它起作用,所以让我逐步指导您!

    好的

    1)在finder中转到项目的顶级目录,并创建一个名为Swiftzlib的新文件夹,或者使用您要导入的模块名称作为名称。 (我们要做的是将zlib库添加为模块,因此可以将其视为导入Foundation或其他此类模块)。为了明确起见,此Swiftzlib目录最终将作为包含*.xcodeproj*.xcworkspace文件的同一目录的子目录。

    2)在您创建的文件夹内,制作两个文件。

  • include.h
  • module.modulemap

  • 3)在include.h文件中,输入以下内容:
    #include<zlib.h>
    

    4)在module.modulemap文件中,输入以下内容:
    module Swiftzlib [system] {
        header "include.h"
        export *
    }
    

    Swiftzlib与您创建的文件夹的名称相同。

    5)打开您的Xcode项目,然后选择目标
  • 5a)在构建阶段->使用库链接二进制文件,添加libz.tbd
  • 5b)在Build Settings-> Swift Compiler-Search Paths中,以非递归方式将$(PROJECT_DIR)/Swiftzlib添加到导入路径
  • 5c)在“构 build 置”->“其他链接器标志”中,将-lz添加为标志

  • 6)在Xcode中选择您的项目(可能不是必需的,但是我已经在我的项目中完成了它并且可以工作)
  • 6a)在Build Settings-> Swift Compiler-Search Paths中,以非递归方式将$(PROJECT_DIR)/Swiftzlib添加到导入路径

  • 7)在Data+Gzip.swfit中,将import Swiftzlib添加到文件顶部

    8)清洁,构建和运行!

    08-16 23:32