2016-12-21 41 views
0

我不知道是否有人遇到了這個問題。我今天更新了我的Xcode到8.2.1。當我嘗試在scrollView上放置幾個按鈕時,發現一個類型推斷錯誤。核心代碼如下所示:Xcode 8.2.1中的Swift 3類型推理錯誤,用swift樣式語句

for i in 0 ..< 6 { 

     let titleButton = UIButton(frame: CGRect(x: CGFloat(i) * titleWidth, y: 0, width: titleWidth, height: titleHeight)) 


     sv.addSubview(titleButton) 
    } 

的代碼沒有問題放置在滾動視圖(SV)6個按鈕,但是當我試圖設置爲每個按鈕一個標題使用通話:的初始化下setTitle(_ title: String?, for state: UIControlState)按鈕,Xcode沒有顯示方法完成的提示。我發現原因是'titleButton'被Xcode推斷爲錯誤類型。

然後我嘗試:

for i in 0 ..< 6 { 

     let frame = CGRect(x: CGFloat(i) * titleWidth, y: 0, width: titleWidth, height: titleHeight) 

     let titleButton = UIButton(frame: frame) 


     sv.addSubview(titleButton) 
    } 

並發現「框架」被推斷爲錯誤的類型,所以「titleButton」的類型推斷失敗從框架看起來。最後我發現從這個for語句開頭的變量'i'被推斷爲錯誤類型,即原點。

我在過去的Xcode版本中沒有找到類似的問題。如果我真的需要在for循環中的邏輯中使用'i',是否有人有想法解決推理錯誤?

回答

0

爲了解決這個問題,我要指出的類型自己如下:

let titleButton : UIButton = UIButton(frame: frame) 

然後在此,該方法完成建議工作正常。希望Apple能快速修復類型推斷錯誤...