2017-12-14 1 views
-1

저는 프로젝트 용으로 Swift를 사용하기 시작했습니다. 나는 네트워크 인터페이스를 위해 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.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"]) 
    .responseJSON { response in 

     if let JSON = response.result.value { 
      print("JSON: \(JSON)") 
     } 

} 

그래서 내가 AFNetworking 스타일처럼 뭔가에 Alamofire의 요청 인터페이스를 포장해야합니까 :

그러나 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 
     } 
} 
관련 문제