Xcode8 Use Legacy Swift Language Version的錯誤解決


Xcode 8的到來,Swift版本由2.3省級到3.0語法有較大變動。

首先無論新舊項目在Xcode8.x下運行後必須設置Swift Version去適配swift語言的語法問題:

執行操作 [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly

但結果還是錯誤一大堆:下面是我遇到這些問題的過程 和 解決過程

錯誤1:Swift語法問題:因爲Xcode8.0有了Swift3.0版本語法改動較大,之前都是swift2.3版本的。需要點擊Edit->Convert->To Current Swift Syntax...修復,選擇swift版本,我選擇的是swift2.3 and later。 但我這項目之前是OC和swift混編,按此修復了所有swift文件,還是一堆的語法錯誤。如圖:


這是點擊Edit->Convert->To Current Swift Syntax...出現的對比圖。左邊是修改後的代碼,右邊是修改前的。

進行此操作後出現語言錯誤,一大堆,這Xcode自動修改的沒問題嗎?

顯然Xcode讓我們改成左邊語法是不對的,但Xcode還讓我們改?!日了狗了,後來在按照上述操作進行時先別點擊sava(其實你編譯一下就會報錯了,有這種for循環修改的錯,我回退了這些for循環的修改(直接點擊中間灰色部分選擇discard),所有這種discard後,其他照常修復,然後再點擊save,結果就解決了Swift版本的問題。

後來使用Xcode8 正式版操作完後出現了一個新的錯誤:就是代碼let a = xxx.xxx() 報錯,主要是xxx()方法返回UIView,所以改成let a:UIView = xxx.xxx()解決了該錯誤。

錯誤2:使用CocoaPods 導入有swift語言的框架後的錯誤解決,首先無論怎麼樣你運行或者編譯他都會有如圖所示的錯誤提示:


第一對於已經適配了swift3.0的按理來說不會出現該錯誤了,但那時我導入已經適配swift的ReactiveCocoa還是出現了該錯誤。執行了Edit->Convert->To Current Swift Syntax...去修復,還是不能解決問題,

解決方法是:直接進行如下圖選擇Yes後編譯運行問題解決



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章