适用于Playground但不适用于Viewcontroller

时间:2017-08-13 08:02:02

标签: swift

好的,可能非常基本:

在playgound中这很好用:

let userNb:Int = 1229
let testRange = 2..<userNb

但是当我使用UI按钮转移到xcode时因此转换为Int我得到“表达类型不明确而没有更多上下文”

let testRange = 2 ..< Int(userNb.text!)

1 个答案:

答案 0 :(得分:0)

Int(userNb.text!)会返回Int?。您基本上是尝试在..<操作数和Int操作数上应用Int?

..<有多个重载,因为你有一个Int?,编译器无法弄清楚要使用哪个重载,所以它说它“需要更多的上下文”。

要解决此问题,请确保以某种方式展开可选项。例如:

2..<(Int(userNb.text!) ?? 10)
// or
2..<Int(userNb.text!)!
// or
if let upperBound = Int(userNb.text!) {
    let range = 2..<upperBound
}