我是不是需要将 Alamofire 请求打包成 AFNetwork 之类的东西?
Posted
技术标签:
【中文标题】我是不是需要将 Alamofire 请求打包成 AFNetwork 之类的东西?【英文标题】:Do I need to package Alamofire's request into something like AFNetwork?我是否需要将 Alamofire 请求打包成 AFNetwork 之类的东西? 【发布时间】:2017-12-14 08:53:10 【问题描述】:我刚刚开始在一个项目中使用 Swift。我选择 Alamofire 作为网络接口。
因为我以前用过AFNetworking风格的界面:
- (NSURLSessionDataTask *)GET:(NSString *)URLString
parameters:(id)parameters
progress:(void (^)(NSProgress * _Nonnull))downloadProgress
success:(void (^)(NSURLSessionDataTask * _Nonnull, id _Nullable))success
failure:(void (^)(NSURLSessionDataTask * _Nullable, NSError * _Nonnull))failure
我可以很清楚的区分成功和失败。每个人都有自己的块来做自己的工作。
但在 Alamofire 中,请求样式似乎需要将成功和失败混合在一个块中:
Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"])
.responseJSON response in
if let JSON = response.result.value
print("JSON: \(JSON)")
那么我是否必须将 Alamofire 的请求接口打包成类似 AFNetworking 的样式?或者有人对此有一些好的做法吗?
【问题讨论】:
【参考方案1】:在响应中,您会获得很多信息,包括您的数据(如果成功),但如果有错误(错误?可选类型)。
您可以简单地检查错误是否为零,然后它是成功的。
Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"])
.responseJSON response in
if response.error == nil
if let JSON = response.result.value
print("JSON: \(JSON)")
else
//do something
【讨论】:
以上是关于我是不是需要将 Alamofire 请求打包成 AFNetwork 之类的东西?的主要内容,如果未能解决你的问题,请参考以下文章
如果将代码共享给其他系统,我是不是需要在代码中安装 alamofire