0
確定,可能非常簡單:作品在遊樂場而不是在視圖控制器
在playgound這工作得很好:
let userNb:Int = 1229
let testRange = 2..<userNb
但是當我轉移與UI按鈕的Xcode的,因此轉換爲INT我得到「表達的類型是沒有更多的上下文模糊」
let testRange = 2 ..< Int(userNb.text!)
確定,可能非常簡單:作品在遊樂場而不是在視圖控制器
在playgound這工作得很好:
let userNb:Int = 1229
let testRange = 2..<userNb
但是當我轉移與UI按鈕的Xcode的,因此轉換爲INT我得到「表達的類型是沒有更多的上下文模糊」
let testRange = 2 ..< Int(userNb.text!)
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
}
謝謝你的工作完美!如果我理解的很好,我會使用最後一個建議,這是一個可選結構。 我仍然不明白爲什麼迅速解釋它,但也許是另一天:) – Dev0urCode
@DevNoob如果你認爲我的答案回答你的問題,請考慮通過點擊該複選標記接受它! – Sweeper