2016-10-23 6 views
-2

이것은 아주 기본적인 질문처럼 보입니다. 그러나 어떤 이유로 그것을 해결할 수 없었습니다. 나는 Alamofire를 사용하여 JSON을 구문 분석하고 내 현재 API 제한 속도를 알려주는 헤더 값을 얻으려고합니다.스위프트 선택 문자열을 Int로 변환

if let xRate = String(describing: response.response?.allHeaderFields["X-Ratelimit-Remaining"])as String? { 
    self.jsonCallsRemaining = xRate      
    print("json: ", xRate) 
    print("json2: ", Int(xRate))      
} 

xRate (또는 Float 또는 Double)의 Int를 가져 오려고하면 '없음'이 표시됩니다. consolve에서 내가보고 있어요 :

JSON을 : 옵션 (79)

json2 : 전무

숫자는 선택적 문자열로 돌아 오는 것 같습니다. 나는 명백한 것을 놓치고 있는가? Swift를 처음 접하십시오. 감사!

+0

if if 줄 끝에서'as String? '을 제거하십시오. – rmaddy

+0

감사합니다. @rmaddy하지만 Int (xRate)는 여전히 0으로 돌아옵니다. – HH887

+0

@ user2452063 그러면 문자열이 유효한 십진 정수가 아닙니다. – Alexander

답변

1

아마도 String.init(describing:)은 관련이 없으므로 불필요합니다.

if let xRate = response.response?.allHeaderFields["X-Ratelimit-Remaining"] as? String { 
     self.jsonCallsRemaining = xRate 
     print("json: ", xRate) 
     print("json2: ", Int(xRate)) 
    } 
+0

고마워,이 나를 위해 일했다. 내가 문제를 해결할 때 이것을 시도했다고 맹세 할 수 있었다. 고마워! – HH887

관련 문제