2016-10-23 5 views
-2

これはかなり基本的な質問のようですが、なんらかの理由で解決できませんでした。私はAlamofireを使用してJSONを解析し、私の現在のAPIレート制限を示すヘッダー値を取得しようとしています。Swiftオプションの文字列を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を取得しようとすると、「nil」と表示されます。 consolveでは私が見ている:

JSONを:オプション(79)

json2:nilを

数は任意の文字列として戻って来ていることが表示されます。私は明白な何かを欠いていますかSwiftへの初心者。ありがとう!

+0

'if let'行の最後に' as String? 'を取り除きます。 – rmaddy

+0

ありがとう@rmaddyしかし、Int(xRate)はまだnilとして戻ってきています。 – HH887

+0

@ user2452063おそらく、文字列は有効な10進整数ではありません。 – 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

関連する問題