2017-02-26 14 views
-1

私は(Any)をキャストしようとしていますか?値をIntegerに設定します。私はFirebaseから情報を取得しています。私は何か別の番号で番号を追加したいと思います。だから、(Any)?値は整数である必要があります。私はこれを持っています:キャスト方法(Any)? Intに

let snapshotValues = snapshot.value as? NSDictionary 
let gamesWon = snapshotValues!.value(forKey: "GamesWon") 
let gamesLost = snapshotValues!.value(forKey: "GamesLost") 
let totalgamesPlayedByUser = gamesWon + gamesLost 

これは私に2つのAny?オブジェクトを一緒に追加することはできません。私はすでにInt(gamesWon)、gamesWonとして試してみました! Int、それは動作しませんでした。これを整数型にキャストする方法は?

+0

が重複する可能性を.com/questions/11716081/cast-optionany-to-int) –

答えて

2

あなたは両方のキーがInt Sが含まれていることがわかっている場合、あなたはgamesWon + gamesLost有効なInt式を作る

let gamesWon = snapshotValues!.value(forKey: "GamesWon") as! Int 
let gamesLost = snapshotValues!.value(forKey: "GamesLost") as! Int 

を書くことができるはずです。

あなたはキーが存在しているかどうわからない場合は、代わりにif letステートメントを使用:// stackoverflowの:[キャストオプション\ [どれ\] intへ](HTTPの

if let gamesWon = snapshotValues!.value(forKey: "GamesWon") as? Int { 
    if let gamesLost = snapshotValues!.value(forKey: "GamesLost") as? Int { 
     let totalgamesPlayedByUser = gamesWon + gamesLost 
    } 
} 
+0

letステートメントの場合、アプリケーションがクラッシュしないようにするための答えを変更してください。 –

+0

Swift 1.2以降、 'let'ステートメントを使用できます:' if gamesWon = ...、gamesLost = ... {...} 'としましょう。 –

関連する問題