2017-02-26 53 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 = ... {...}'。 –