2016-08-10 1 views
0

, 열쇠 또는 ​​선택이 될 것입니다 사전에서 반환 된 값이 존재하지 않을 수Alamofire 사전 값 애플의 정의에

또한 값을 검색 첨자 구문을 사용할 수 있습니다 수 있기 때문에 특정 키의 사전 값이없는 키를 요청할 수 있기 때문에 사전의 아래 첨자는 사전 값 유형의 선택적 값 을 반환합니다. 사전 에 요청 된 키의 값이 포함되어 있으면 아래 첨자는 해당 키의 기존 값을 포함하는 선택적 값을 반환합니다.

내 매개 변수 사전에 auth_token을 사용하여 네트워크를 연결하려고합니다.

let params = ["auth_token" : authToken()] 
print(params["auth_token"]) // shows Optional(dwadhuiwahd) 

사전의 값은 선택 사항이 아닙니다. authToken() 함수에서 조건부 바인딩을 사용하여이를 확인하고이를 인쇄합니다. AUTH_TOKEN를 보유하고 사전 키를 인쇄 할 때 그러나 그것으로 나타난다 :

Optional(dawudhawhd) 

그리고 이것은 내 네트워킹 요청이 실패의 원인이된다.

Alamofire.request(.GET, urlString, parameters: params, encoding: .JSON).responseJSON { 
     (response) in 
//this fails 
} 

URL을 하드 코딩하지 않는 한.

let urlString = "https://staging.travelwithterra.com/api/v1/users/" + agentID + "/agent_info?auth_token=" + authToken() 

    Alamofire.request(.GET, urlString, encoding: .JSON).responseJSON { 
     (response) in //this doesnt fail } 

제 질문은 어떻게 Alamofire가 이것을 고려하지 않았는가입니다. 또는 내가 뭘 잘못하고있어, 나를 죽이는거야!

******** 솔루션 **********

DONT 사용 .JSON의 ENCODING! .URL 인코딩!

+0

'urlString'의 정의는 무엇입니까? – Alexander

답변

0

느낌표를 추가하기 만하면됩니다. 아래와 같이.

print(params["auth_token"]!) // doesn't show Optional(dwadhuiwahd) :P 
+0

불행하게도 이것은 작동하지 않습니다. 문제는 인코딩이 .JSON이 아니라 .URL로 설정되었습니다. –