2017-05-06 86 views
1

我已經從Xcode 6升級到Xcode 8.2,因爲自從引入Swift以來,我從未開發過這幾年。 現在,我注意到我從互聯網上下載的所有項目,包括Apple的Swift操場和Github上的所有Swift 2.3開源項目都無法編譯。Xcode 8:大多數Swift項目無法構建和編譯

首先,我得到的錯誤如下:

需要「使用傳統的雨燕語言版本」(SWIFT_VERSION)被正確配置對於使用雨燕的目標。使用[編輯>轉換>至當前Swift語法...]菜單選擇一個Swift版本,或使用Build Settings編輯器直接配置構建設置。

當我固定它按在計算器其他答案,這是通過在屬性編輯器是設定值,我得到了各種各樣的斯威夫特編譯器錯誤,這些錯誤總是爲每個項目不同,如:

選項的價值展開

從'UITableViewCell?'下降到'UITableViewCell'只解開可選項;你的意思是使用'!'嗎?

Objective-C的方法 '解析器:didStartElement:的namespaceURI:的qualifiedName:屬性:' 由方法提供 '解析器(:didStartElement:的namespaceURI:的qualifiedName:屬性:)' 與任選要求方法「解析器(衝突:didStartElement: namespaceURI:qualifiedName:attributes :)'in protocol'NSXMLParserDelegate'

我做錯了什麼?到目前爲止,我還沒有能夠運行任何應用程序,除了我在Xcode中創建的空白選項卡視圖應用程序以及從GitHub下載的一個非常新的Swift 3.2應用程序。

回答

0

你沒有做錯任何事情。 Xcode 8僅適用於swift 2.3或3.x.並且它默認使用swift編譯。這是你看到的錯誤的原因。

要與SWIFT 2.3編譯,只需拖放到你的項目構建設置和搜索遺留迅速找到正確的構建設置,然後將設置切換到YES來選擇加入SWIFT 2.3,而不是斯威夫特3.

enter image description here

您可能仍然會遇到一些編譯錯誤,但由於swift版本中的較小差異,可能會少一些。

問題在於第三方庫,它必須與您的項目在同一版本的Swift中。所以,如果你使用的是Swift 2.3,你不能使用Swift 3.0編寫的庫。

這就是說,我建議你留在swift 3並修復錯誤。這並不難,因爲xcode在大多數情況下都提供了正確的語法。