2016-06-09 5 views
1

나는 현재 기능을 가지고 : 나는 응답 매개 변수 (클래스가 ObjectMapper 프로토콜을 준수하는 경우 식별하는 데 사용되는 클래스이다) 유형 맵핑이입니다 클래스에 전달하려는AlamoFire + ObjectMapper, 함수에 Mappable 유형의 매개 변수를 가져 오는 방법은 무엇입니까?

func getJSONDataDictionary (accessToken: String, response: Mappable, url: String) { 

    let headers = [ 
     "Cache-Control": "no-cache", 
     "Authorization": "bearer \(accessToken)" 
    ] 

    Alamofire.request(.GET, url, encoding: .JSON, headers: headers) 
     .responseObject{ (response: Response<response, NSError>) in 

     let JSONDict = response.result.value 

    } 
    } 

. 코드를 통해 지금 당장은 "응답이 형식이 아닙니다"오류가 발생합니다. 내가 Mappable 매개 변수를 취할 수 있도록 내가 할 수있는 일이 있나요?

답변

0

오류 메시지에 매개 변수 이 아닌 형식이 아님을 나타냅니다. Mappable프로토콜입니다.

나는 당신이 그렇게 같은 함수가 일반 수 있도록 제안 :

func getJSONDataDictionary< T: Mappable>(accessToken: String, response: T, url: String) { 

    let headers = [ 
     "Cache-Control": "no-cache", 
     "Authorization": "bearer \(accessToken)" 
    ] 

    Alamofire.request(.GET, url, encoding: .JSON, headers: headers) 
     .responseObject{ (response: Response<response, NSError>) in 

     let JSONDict = response.result.value 

    } 
    } 

일반 유형 T매핑 가능한 프로토콜로 제한됩니다.

0

이 작업을 수행 할 수 있습니다

var request = URLRequest(url: URL(string: url)!) 
    request.httpMethod = HTTPMethod.post.rawValue 
    request.setValue("application/json", forHTTPHeaderField: "Content-Type") 

    let pjson = attendences.toJSONString(prettyPrint: false) 
    let data = (pjson?.data(using: .utf8))! as Data 

    request.httpBody = data 

    Alamofire.request(request).responseJSON { (response) in 


     print(response) 

    }