2016-11-14 3 views
0

내가 swift3에서이 경고를 제거하는 방법을 알아낼 질수 : 'responseMessagesArray'에 대한 호출의스위프트 결과가 사용되지하는

결과 것은 사용되지

이 내 코드가 같은 모습입니다 :

fileprivate class func getMessagesAtPath(_ path: String, tokenKey: String, completionHandler: @escaping (MyMessagesWrapper?, NSError?) -> Void) { 
     let credentialData = ":\(tokenKey)".data(using: String.Encoding.utf8)! 
     let base64Credentials = credentialData.base64EncodedString(options: []) 

     let headers = ["Accept": "application/json", 
         "Content-Type": "application/json", 
         "Authorization": "Basic \(base64Credentials)"] 

     Alamofire.request(path, headers: headers) 
      .responseMessagesArray { response in 
       if let error = response.result.error 
       { 
        completionHandler(nil, error as NSError?) 
        return 
       } 
       completionHandler(response.result.value, nil) 
     } 
    } 

    class func getMyMessages(_ completionHandler: @escaping (MyMessagesWrapper?, NSError?) -> Void) { 
     getMessagesAtPath(MyMessages.endpointForMyMessages(),tokenKey: MyMessages.getTokenKey(),completionHandler: completionHandler) 
    } 

extension Alamofire.DataRequest { 
    func responseMessagesArray(_ completionHandler: @escaping (DataResponse<MyMessagesWrapper>) -> Void) -> Self { 
     let responseSerializer = DataResponseSerializer<MyMessagesWrapper> { request, response, data, error in 
      guard error == nil else 
      { 
       return .failure(error!) 
      } 
      guard let responseData = data else { 
       return .failure(AFError.responseSerializationFailed(reason: .inputDataNil)) 

      } 

      let JSONResponseSerializer = DataRequest.jsonResponseSerializer(options: .allowFragments) 
      let result = JSONResponseSerializer.serializeResponse(request, response, responseData, error) 

      switch result { 
      case .success(let value): 
       let json = JSON(value) 
       let wrapper = MyMessagesWrapper() 

       wrapper.next = json["messages"]["next_page_url"].stringValue 
       wrapper.previous = json["messages"]["prev_page_url"].stringValue 
       wrapper.count = json["messages"]["total"].intValue 

       var allMessages:Array = Array<MyMessages>() 
       print(json) 
       let results = json["messages"]["data"] 
       //print(results) 
       for jsonAds in results 
       { 
        //print(jsonAds.1) 
        let mesaggesData = MyMessages(json: jsonAds.1, id: Int(jsonAds.0)) 
        allMessages.append(mesaggesData) 
       } 
       wrapper.myMessages = allMessages 
       return .success(wrapper) 
      case .failure(let error): 
       return .failure(error) 
      } 
     } 

     return response(responseSerializer: responseSerializer, 
         completionHandler: completionHandler) 
    } 
} 

은 내가 fileprivate 클래스 FUNC의 getMessagesAtPath()에서 경고를 어디서 .responseMessagesArray {

_ = somethingThatReturnsAValueYouDontCareAbout() 

스위프트 (3)가 사용되지 않은에 대해 경고 :의 반응은 내가 다음과 같이 명시 적으로 폐기 _에 함수의 반환 값을 지정 신속 2.

답변

5

이 경고가 없었

나타납니다 함수의 반환 값이 무엇인지 알 수 있어야합니다.

+0

''_ = Alamofire.request (경로, 헤더 : 헤더)''가 작동했습니다! – user2636197

+0

@ user2636197 또는 간단하게'@ discardableResult' 속성으로 함수를 표시하여 반환 값을 '소비'할 필요도없고 명시 적으로 무시할 필요도 없다는 것을 컴파일러에서 알 수 있습니다 ([링크 된 Q & A] http://stackoverflow.com/questions/37939573/result-of-call-to-myfunction-is-unused)) – Hamish

+0

고마워요! 잘 작동합니다. – Raja