如何投(任何)?到Int

时间:2017-02-26 13:03:05

标签: swift downcast

我想投一个(任何)?值为整数。我正在从Firebase检索信息,我想通过别的方式添加数字。这就是(Any)的原因?值必须是整数。我有这个:

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

这给了我一个错误,那两个?对象不能一起添加。我已经尝试过Int(gamesWon),游戏一样! Int,但是没有用。如何将其转换为整数?

1 个答案:

答案 0 :(得分:4)

如果您知道两个密钥都包含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
    }
}