Swift项目引入第三方库的方法
@H_404_2@ 转自 @H_404_2@ http://blog.shiqichan.com/How-To-import-3rd-lib-Into-Swift-Project/@H_404_2@
@H_404_2@
以下,将创建一个Swift项目,然后引入3个库:
Snappy简化autolayout代码的库 Alamofirehttp网络库,AFNetworking作者写的 SDWebImage图片加载,objc项目,通过头文件brIDge方式供swift使用 其中,前两个是Swift的库,SDWebImage
是Objc的库。
源代码见:https://github.com/MarshalW/SwiftWith3rdLibDemo
项目跑起来是这个样子:
做下面步骤之前,需要让自己的项目是git项目。
使用Snappy库Snappy库,用于简化autoLayout布局的代码。
和Objc项目不同,Swift项目没有类似CocoaPods的库依赖工具,而是使用git的submodule引入库。目前来看更方便使用。
1. 创建submodule在当前项目的目录下执行:
1 | git submodule add http s://github. com/Masonry/Snappy.git |
执行完会看到多了个Snappy目录。
这样的项目,如果git共享给其他人,他们除了clone
项目以外,还需要:
git submodule update - - init recursive |
如下图所示,直接将文件拖拽过去即可:
3. 将Snappy.framework设置到项目中
Xcode打开项目的General
,点击+
然后,选择Snappy.framework
,加上它。
4. 编写代码测试
如果能正常import
,Xcode不报错,就应该没有问题了:
import Snappy |
写了个简单的代码运行也没有问题:
1 2 3 4 5 6 7 8 9 10 | overrIDe func vIEwDIDAppear(animated: Bool) { println( "super vIEw: \(imageVIEw.supervIEw)") let padding = UIEdgeInsetsMake( 100,0,152)">0) imageVIEw.snp_makeConstraints { make in //autolayout make.edges.equalTo( self.imageVIEw.supervIEw!).with.insets(padding) return } } |
SDWebImage库是Objc编写的。引入的方式和Swift有所不同(从第3步开始)。
1. 创建submodule这一步还是省不了的:
com/rs/SDWebImage.git |
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头文件
找到这里:
双击箭头标示的地方,会d出文本框,将头文件加进去即可。
我开始的时候是参照stackoverflow的回答,将头文件直接拖拽进去,发现用的是绝对路径。可以在拖拽后修改一下:
引入第三方库的常见问题
目前主要碰到的问题是各个Swift第三方库Deployment Target
版本不一致。比如Alamofire
是8.0,而Snappy
是7.0,需要让它们的版本是一致的。
会有类似这样的报错:
ld: embedded dylibs/frameworks are only supported on iOS 8.0 and later ... |
总结
以上是内存溢出为你收集整理的Swift项目引入第三方库的方法全部内容,希望文章能够帮你解决Swift项目引入第三方库的方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)