我需要将Alamofire的请求打包成像AFNetwork这样的东西吗?

时间:2017-12-14 08:53:11

标签: swift alamofire

我刚刚开始使用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 个答案:

答案 0 :(得分:0)

在回复中,如果成功,您会收到很多信息,包括您的数据,如果有的话,还会收到错误(错误?可选类型)。

您可以简单地检查错误是否为零然后成功。

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
      }
}