2017-12-14 9 views
-1

私はちょうどプロジェクトのためにスイフトを使用し始めます。私はネットワークインターフェースのためにAlamofireを選んだ。私はAFNetworkingスタイルのインターフェイスを使用するために使用されるのでAlamofireのリクエストをAFNetworkのようなものにパッケージ化する必要がありますか?

- (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)") 
     } 

} 

は、だから私はAFNetworkingスタイルのようなものにAlamofireの要求インタフェースをパッケージ化する必要がありますか?誰かがこれについていくつか良い習慣を持っていますか?

答えて

0

応答では、成功した場合はデータを含む多くの情報が得られますが、もしあればエラー(エラー?オプションのタイプ)もあります。

単純に、エラーがnilであるかどうかを確認して成功したかどうかを確認できます。

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 
     } 
} 
関連する問題