这个问题已经有了答案:
xcode 8 beta 3: Expected ',' joining parts of a multi-clause condition
1个答案
我正在尝试展开一个值,如果它有效,将其与大于0的值进行比较。
我是这样做的:

if let movieLength = movie.length as? Int, movieLength > 0 {
    self.durationLabel.text = "\(movieLength) min"
} else {
    self.durationLabel.isHidden = true
}

但我得到了错误
从“int”开始向下投射?只打开“int”选项;是否要使用“!”?
还尝试使用where关键字,但没有成功:
if let movieLength = movie.length as? Int where movieLength > 0 {
    self.durationLabel.text = "\(movieLength) min"
} else {
    self.durationLabel.isHidden = true
}

出现错误:
应输入“,”以连接多子句条件的部分
我刚才在上面试过。

最佳答案

无需在if let中显式展开,只需这样做即可。

if let movieLength = movie.length, movieLength > 0 {
    self.durationLabel.text = "\(movieLength) min"
} else {
    self.durationLabel.isHidden = true
}

您可以检查The Basics中的“可选绑定”以获得正确的语法。

10-08 14:55