let highscore = leaderboardRequest.scores[0] as! GKScore
结果到
Cannot subscript a value of type '[GKScore]?'
Swift2中正确的语法是什么?
发布于 2016-02-22 16:06:33
试试这个:
let highscore = leaderboardRequest.scores?[0] as! GKScore更好的是:
if let highscore = leaderboardRequest.scores?[0] {
//your code
}或者:
guard let highscore = leaderboardRequest.scores?[0] else { return }发布于 2016-02-22 15:51:22
leaderboardRequest.scores未打开,请在使用下标之前打开它。
if let scores = leaderboardRequest.scores {
if let highscore = scores.first as? GKScore {
// safely use `highscore` here
}
}“展开”是Swift中的一个关键概念,它与选项一起使用。
?部件在[GKScore]?中意味着这是一个可选的部分。它包含值或零。可选项不是它所包含的类型,您必须从可选项中“提取”值,它被称为“解包装”。
要安全地打开可选的值,可以像我一样使用"if let“,或者使用Swift 2中出现的”卫兵“,或者使用可选的链接等等。
所有这些都在Swift、苹果电子书和文档网站上进行了解释。
https://stackoverflow.com/questions/35557938
复制相似问题