2016-12-27 4 views
0

AlamofireObjectMapper 확장을 사용합니다. 응답을 받고 싶지만 실패했습니다. Response closure가있는 코드가 response.result.isSuccess { tableLeague = response.result.value }가 호출되지 않으면 에서 ({(response : DataResponse))를 호출하지 않기 때문에 tableLeague 객체는 항상 nil입니다. 나는 다음 방법을 사용Alamofire.request(). responseObject가 응답을 반환하지 않습니다.

let header = ["X-Auth-Token":"1231231"] 

static let sharedInstance = ServerAPI() 
private func getRequest(uri: String) -> DataRequest { 
    return Alamofire.request(uri, method: .get, headers: header) 
} 

public func getTableLeague() -> TableLeague { 
    var tableLeague: TableLeague? 
    getRequest(uri: URL).responseObject { (response: DataResponse<TableLeague>) in 
     if response.result.isSuccess { 
      tableLeague = response.result.value 
     } 
    } 
    return tableLeague! 
} 

을 그리고 비즈니스 클래스에서 사용 : 나는 응답이 아직 있기 때문에이 될 수 있다고 생각

public func readTableLeague() -> TableLeague { 
    let tableLeague = ServerAPI.sharedInstance.getTableLeague() 
    return tableLeague 
} 

하지만 난 아직

이 객체를 설정하려고

뭐가 문제입니까? 완료 핸들러는 다른 것을 사용해야합니까?

+0

에 의해 JSON 응답 간단한지도를 얻을 때 구조를

class Response: Mappable { var success: Bool? var data: [Data]? required init?(_ map: Map) { mapping(map) } func mapping(map: Map) { success <- map["success"] data <- map["data"] } } class Data: Mappable { var uid: Int? var name: String? // add other field which you want to map required init?(_ map: Map) { mapping(map) } func mapping(map: Map) { uid <- map["uid"] name <- map["name"] } } 

에 따라지도를보십시오. –

+0

자세한 설명을 추가합니다. –

+0

Mapper 클래스가 응답을 TableLeague 클래스에 매핑하지 않는다는 것을 의미합니다. JSON 객체가 포함 된 응답 객체를 확인하십시오. –

답변

0

당신이 당신의 문제에 대해 좀 더 설명을 추가하십시오이 구문

let response = Mapper<Response>().map(responseObject) 
if let id = response?.data?[0].uid { 
    println(id) 
}