2017-08-13 58 views
0

確定,可能非常簡單:作品在遊樂場而不是在視圖控制器

在playgound這工作得很好:

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

但是當我轉移與UI按鈕的Xcode的,因此轉換爲INT我得到「表達的類型是沒有更多的上下文模糊」

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

回答

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 
} 
+0

謝謝你的工作完美!如果我理解的很好,我會使用最後一個建議,這是一個可選結構。 我仍然不明白爲什麼迅速解釋它,但也許是另一天:) – Dev0urCode

+0

@DevNoob如果你認爲我的答案回答你的問題,請考慮通過點擊該複選標記接受它! – Sweeper

相關問題