zoukankan      html  css  js  c++  java
  • Swift项目引入第三方库的方法

    以下,将创建一个Swift项目,然后引入3个库:

    其中,前两个是Swift的库,SDWebImage是Objc的库。

    源代码见:https://github.com/MarshalW/SwiftWith3rdLibDemo

    项目跑起来是这个样子:

    做下面步骤之前,需要让自己的项目是git项目。

    使用Snappy库

    Snappy库,用于简化AutoLayout布局的代码。

    和Objc项目不同,Swift项目没有类似CocoaPods的库依赖工具,而是使用git的submodule引入库。目前来看更方便使用。

    1. 创建submodule

    在当前项目的目录下执行:

    1
    git submodule add https://github.com/Masonry/Snappy.git

    执行完会看到多了个Snappy目录。

    这样的项目,如果git共享给其他人,他们除了clone项目以外,还需要:

    1
    git submodule update --init --recursive
    2. 将Snappy.xcodeproj加入到Xcode项目中

    如下图所示,直接将文件拖拽过去即可:

    3. 将Snappy.framework设置到项目中

    Xcode打开项目的General,点击+

    然后,选择Snappy.framework,加上它。

    4. 编写代码测试

    如果能正常import,Xcode不报错,就应该没有问题了:

    1
    import Snappy

    写了个简单的代码运行也没有问题:


     
    override func viewDidAppear(animated: Bool) {
    println("super view: (imageView.superview)")

    let padding = UIEdgeInsetsMake(100, 100, 0, 0)

    imageView.snp_makeConstraints { make in //autolayout
    make.edges.equalTo(self.imageView.superview!).with.insets(padding)
    return
    }
    }

    使用SDWebImage库

    SDWebImage库是Objc编写的。引入的方式和Swift有所不同(从第3步开始)。

    1. 创建submodule

    这一步还是省不了的:

    1
    git submodule add https://github.com/rs/SDWebImage.git
    2. 将SDWebImage.xcodeproj加入到Xcode项目中

    3. 设置Target Dependencies

    在这里:

    加入:

    看起来是这样:

    4. Link Binaray With Libraries

    找到这里:

    加入ImageIO.framework(iOS自带的),以及libSDWebImage.a

    5. 设置Other Linker Flags

    在这里设置-ObjC

    设置完了的样子:

    6. 创建Bridge头文件

    就是创建一个普通的头文件,一般命名为项目名-Bridge-Header.h

    7. 设置Bridge头文件

    找到这里:

    双击箭头标示的地方,会弹出文本框,将头文件加进去即可。

    我开始的时候是参照stackoverflow的回答,将头文件直接拖拽进去,发现用的是绝对路径。可以在拖拽后修改一下:

    引入第三方库的常见问题

    目前主要碰到的问题是各个Swift第三方库Deployment Target版本不一致。比如Alamofire是8.0,而Snappy是7.0,需要让它们的版本是一致的。

    会有类似这样的报错:

    1
    ld: embedded dylibs/frameworks are only supported on iOS 8.0 and later ...

  • 相关阅读:
    XMLHttpRequest 对象相关
    slideToggle()---单击隐藏/浮现--jQuery--click() 方法
    如何打开无线网卡开关(常见无线网卡开关样式)-----记一次令人脸红的羞耻操作
    之前写的页面导出Excel表格
    word 快捷键 部分
    windows 快捷键 部分
    推荐几款屏幕录制工具(可录制GIF)
    【myeclipse2014-2017】使用相关
    嵌套的JsonObject与JSONArray的取值---JSON中嵌套JSONArray
    图片素材库
  • 原文地址:https://www.cnblogs.com/drduan/p/4841784.html
Copyright © 2011-2022 走看看