2017-02-26 55 views
-1

我想施放一個(任何)?值整數。我正在從Firebase中檢索信息,並且希望通過其他方式添加該號碼。這就是爲什麼(任何)?值需要是一個整數。我有這個:如何投射(任何)?到國際

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

這是給我一個錯誤,兩個任何?對象不能被添加在一起。我已經嘗試過Int(gamesWon),gamesWon!詮釋,但沒有奏效。如何把它作爲一個整數?

+0

[演員選項\ [任何\]爲int]的可能的複製(HTTP://計算器.com/questions/11716081/cast-optionany-to-int) –

回答

2

如果您知道這兩個鍵包含Int S,你應該能夠編寫

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

使gamesWon + gamesLost有效Int表達。

如果知道密鑰是有或沒有,使用if let語句來代替:

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

如果更改了使用語句的回答,那麼應用程序不會崩潰 –

+0

從Swift 1.2開始,可以使用單個'let'語句:'if讓gamesWon = ...,讓gamesLost = ... {...}'。 –