本文共 1760 字,大约阅读时间需要 5 分钟。
swift引入第三方库常见问题:
首先需要了解下静态库,动态库,Framework的区别所谓的库就是一段编译好的二进制文件,加上头文件,相关的资源文件就可供别人使用静态库:(静态链接库)(.a)在编译时会将库copy一份到目标程序中,编译完成之后,目标程序不依赖外部的库,也可以运行 缺点是会使应用程序变大动态库:(.dylib)编译时只存储了指向动态库的引用。 可以多个程序指向这个库,在运行时才加载,不会使体积变大, 但是运行时加载会损耗部分性能,并且依赖外部的环境,如果库不存在或者版本不正确则无法运行Framework:实际上是一种打包方式,将库的二进制文件,头文件和有关的资源文件打包到一起,方便管理和分发。iOS8 / Xcode 6 之前是无法使用静态库,出现了AppExtension之后可以使用对于是否使用Framework,CocoaPods 通过use_frameworks来控制1.不使用use_frameworks! -> static libraries 方式 -> 生成.a文件在Podfile中如不加use_frameworks!,cocoapods会生成相应的 .a文件(静态链接库),Link Binary With Libraries: libPods-**.a 包含了其他用pod导入有第三库的.a文件2.use_frameworks! -> dynamic frameworks 方式 -> 生成.framework文件使用了use_frameworks!,cocoapods会生成对应的frameworks文件(包含了头文件,二进制文件,资源文件等等)Link Binary With Libraries:Pods_xxx.framework包含了其它用pod导入的第三方框架的.framework文件1.纯oc项目中 通过pod导入纯oc项目, 一般都不使用frameworks2.swift 项目中通过pod导入swift项目,必须要使用use_frameworks!(这个是那个作者的意见), 在需要使用的到地方 import AFNetworking3.swift 项目中通过pod导入OC项目 (我没有用桥接,用桥接报错) 1) 使用use_frameworks,在桥接文件里加上#import "AFNetworking/AFNetworking.h" 2)不使用frameworks,桥接文件加上 #import "AFNetworking.h"
参考Swift常用的框架https://www.zhihu.com/question/28816900
响应是编程
https://www.cnblogs.com/chuange-Strongload/p/5893736.html
类库集合:https://www.cnblogs.com/gongyuhonglou/p/5570797.html
最全框架集合:http://blog.csdn.net/yang889999888/article/details/75581718
框架集合:http://lib.csdn.net/article/swift/52339#下拉刷新
框架集合:http://blog.csdn.net/qq_16825363/article/details/70064228
========================常用主流框架===============================
网络请求框架Alamofire:
Moya是对Alamofire的封装:
SwiftJson是Swift 界 JSON 解析之王(不是字典转模型,吧就送字符串转换成json对象):
字典转模型HandyJSON:
自动布局框架:
图片下载显示网络图片框架:Kingfisher()、sdwebImage(需要桥接文件)
网络监控:Reachability.swift:
Reachability 这个是oc的
MBProgressHUD:(OC写的,需要桥接)
下拉刷新:MJRefresh(需桥接)
图片轮播框架:
跑马灯:
相册多选: