在playgound中这很好用:
let userNb:Int = 1229
let testRange = 2..<userNb
但是当我使用UI按钮转移到xcode时因此转换为Int我得到“表达类型不明确而没有更多上下文”
let testRange = 2 ..< Int(userNb.text!)
答案 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
}