在swift的学习中, 网络请求是一个绕不过去的坎. 众所周知, 在OC的开发中, 我们使用最多的就是AFNetworking, 而在Swift中, 其作者开源了另一个库:** Alamofire**.
但是这个库, 在集成的时候, 却多少遇到了些麻烦.总的在集成的时候, 有以下这些方法:
一. cocoapods集成
使用cocoapods集成是最方便的, 在你的Podfile文件添加以下代码:
pod 'Alamofire'
然后, 运行"pod install"即可!
在需要使用Alamofire的地方, 引入其头文件, 即可正常使用!
二. 手动集成
在手动集成的过程中就遇到了一些坑:
将下载下来的Alamofire-master内的所有文件, 都放在你的项目根目录下,其中的Example文件夹可以不拖进去, 也不会有问题.
然后, 在文件列表右键选择Add files to ..., 找到** Alamofire.xcodeproj** (蓝色那个):
Add之后, 就是这个样子:
最后, 来到你的项目(这里就是LZNetwork)的中的General, 找到** Embedded Binaries**:
然后, 就可以在需要使用Alamofire的地方引入其头文件, 正常使用了.
其他
你可能会觉得, 整个文件夹拖进去, 很多不必要的文件都放进去了, 感觉不太好, 你只想把Alamofire相关的一些文件放进去, 其实这里Alamofire相关的文件, 只有Alamofire-master内的Source文件夹, 把他拖进你的项目, 你会发现,怎么都不能引用到这个头文件, 及其相关的类.
查了一些资料, 有个说, 这样添加的文件在使用的时候不需要引入Alamofire头文件, 在调用相关的方法的时候, 也不用使用****Alamofire**类去调用,
例如:
在使用时, 官方给的示例是这样的:
Alamofire.request("https://httpbin.org/get").responseJSON { response in
print(response.request) // original URL request
print(response.response) // HTTP URL response
print(response.data) // server data
print(response.result) // result of response serialization
if let JSON = response.result.value {
print("JSON: \(JSON)")
}
}
而如果仅仅将Source文件夹拖到你的项目, 你直接可以这样使用:
request("https://httpbin.org/get").responseJSON { response in
print(response.request) // original URL request
print(response.response) // HTTP URL response
print(response.data) // server data
print(response.result) // result of response serialization
if let JSON = response.result.value {
print("JSON: \(JSON)")
}
}
其他的都一样, 只是没有使用Alamofire类去调用相关方法. 我测试 了一下, 也能正常发送请求.
最后, 还是建议直接使用cocoapods来集成Alamofire.