首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift2:不能下标类型为‘[GKScore]的值?’

Swift2:不能下标类型为‘[GKScore]的值?’
EN

Stack Overflow用户
提问于 2016-02-22 15:48:49
回答 2查看 61关注 0票数 3

let highscore = leaderboardRequest.scores[0] as! GKScore

结果到

Cannot subscript a value of type '[GKScore]?'

Swift2中正确的语法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-22 16:06:33

试试这个:

代码语言:javascript
复制
let highscore = leaderboardRequest.scores?[0] as! GKScore

更好的是:

代码语言:javascript
复制
if let highscore = leaderboardRequest.scores?[0] {
    //your code
}

或者:

代码语言:javascript
复制
guard let highscore = leaderboardRequest.scores?[0] else { return }
票数 2
EN

Stack Overflow用户

发布于 2016-02-22 15:51:22

leaderboardRequest.scores未打开,请在使用下标之前打开它。

代码语言:javascript
复制
if let scores = leaderboardRequest.scores {
    if let highscore = scores.first as? GKScore {
        // safely use `highscore` here
    }
}

“展开”是Swift中的一个关键概念,它与选项一起使用。

?部件在[GKScore]?中意味着这是一个可选的部分。它包含值或零。可选项不是它所包含的类型,您必须从可选项中“提取”值,它被称为“解包装”。

要安全地打开可选的值,可以像我一样使用"if let“,或者使用Swift 2中出现的”卫兵“,或者使用可选的链接等等。

所有这些都在Swift、苹果电子书和文档网站上进行了解释。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35557938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档