2014-09-30 2 views
2

안녕하세요, 저는 인터넷 검색에 많은 행운이 없었지만 Alamofires 비동기 자연을 둘러 보려고합니다. 나는 사전으로 JSON 응답을 반환하기 위해 노력하고있어하지만 엑스 코드가 저를주고 어떤 도움을 크게 감상 할 수사전을 Void로 변환 할 수 없습니다.

func homePageDetails(userName:String) -> (Dictionary<String,AnyObject>){ 
    let username = userName 
    let hompePageDetails = Alamofire.request(.GET, "http://example.com/API/Bunch/GetHomePageDetails/\(username)/").responseJSON{(request, response, JSON, error) in 
    print(JSON) 
    var test = JSON as Dictionary<String,AnyObject> 
    return test 
    } 
} 

"사전은 '무효'로 변환되지 않습니다."

+0

alamofire가 개체를 되 돌릴 수있게 만들었습니까? – user805981

+0

예. 콜백을 사용해야하고 정상적으로 작동합니다. 아래의 답변은 정확합니다. – User4

답변

9

test: Dictionary<String,AnyObject>homePageDetails 방법이 아닌 마감 시간에서 반환합니다. 클로저 반환 유형은 Void입니다.이 오류가 발생한 이유입니다.

나는 Alamofire를 사용하지 않았지만 Alamofire.request은 비 차단 호출처럼 보입니다. 그렇다면이 함수에서 돌아올 수 없습니다. 완료 폐쇄와 같은 것을 사용할 수 있습니다. 테스트되지 않은 개념 :

func homePageDetails(userName:String, completion:(Dictionary<String,AnyObject>) -> Void) { 
    let username = userName 
    let hompePageDetails = Alamofire.request(.GET, "http://example.com/API/Bunch/GetHomePageDetails/\(username)/").responseJSON{(request, response, JSON, error) in 
     print(JSON) 
     var test = JSON as Dictionary<String,AnyObject> 
     completion(test) 
    } 
} 
관련 문제