Alamofire 4.0踩坑

前端之家收集整理的这篇文章主要介绍了Alamofire 4.0踩坑前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

引子

之前在OC开发中习惯了AFN的各种便捷操作,到了Swift中各种想办法解决数据请求和解析问题。百思不得解,终于找到了Alamofire这个第三方库,但是这个库在普通引用上与OC的直接引用有所不同,但是使用cocoaPods导入还是相同的。

导入方法

首先我们从GitHub上下载Alamofire的最新版到本地,需要知道的是下载的文件中有Alamofire的2,3,4的各个版本的开发文档,我们对照文档即可进行数据的请求。
当然我们要注意的是它的引用方式,打开工程Alamofire的工程,我们需要关注的是它的Xcodeproj,因为我们需要使用传统的addfile将它添加到项目中,当然,即时添加到项目中了。但是你在工程中引入的时候还是会报错,所以此时,你应该添加你所引入的xcodeproj中所包含的Alamofire 的framework,具体:选中项目 TARGETS > General > Embedded Binaries > +(添加) 完成。 注意选择对应的framework,我们这里选择frameworkiOS
如图
clean,运行即可成功

利用Alamofire完成数据请求

导入数据之后,最重要的当然是进行数据请求了。Alamofire针对Swift3推出了Alamofire4作为新的框架,对一些API进行了修改

最简单的数据请求

Alamofire.request("https://api.500px.com/v1/photos").responseJSON { (DataResponse) in
print(DataResponse.data)
if let Json = DataResponse.result.value{
print("Json:\\(Json) ")
}

请求结果

{"error":"Consumer key missing.","status":401}

附复杂请求方式

// Alamofire 4
let parameters: Parameters = ["foo": "bar"]
Alamofire.request(urlString,method: .get,parameters: parameters,encoding: JSONEncoding.default)
.downloadProgress(queue: DispatchQueue.utility) { progress in
print("Progress: \\(progress.fractionCompleted)")
}
.validate { request,response,data in
// Custom evaluation closure now includes data (allows you to parse data to dig out error messages if necessary)
return .success
}
.responseJSON { response in
debugPrint(response)
}
原文链接:https://www.f2er.com/swift/321707.html

猜你在找的Swift相关文章