如何將程式碼轉換為 Swift 3 ?

原文出處:Swift3 Migration Guide – Udacity

下載Xcode測試版

在正式版發行之前,可在Apple的開發者網站找到測試版的Xcode進行下載:https://developer.apple.com/download/

安裝完之後,在你的電腦中,會同時存在原本的Xcode 正式版與剛下載好的測試版。而在開啟專案時,可透過滑鼠右鍵->打開檔案的應用程式 -> 來選擇正式版或是測試版開啟

Screenshot 2016-08-12 12.37.42

*請注意,在安裝了測試版之後,系統可能會將測試版直接設定為預設值

使用轉換精靈

當你用新版的Xocde開啟之前的專案時,當Xcode偵測到你的程式碼是使用舊版的Swift時,會自動出現轉換畫面:

按下Convert後,會出現三個選擇:

Screenshot 2016-08-12 14.03.24

  • 轉換至Swift3:最合理的選擇
  • 轉換至Swift 2.3:再撐一下,但遲早要換的
  • 暫不轉換:多了這個選項還不錯,在不小心開了很重要而且還沒備份的專案時可以選這個

接著Xcode會問你要選擇哪些targets來轉換,如果只有一個就直接繼續按下Next

Screenshot 2016-08-12 14.08.42

接著你會看到自動轉換的部分,有蠻多不是自己寫的地方也自動轉換了:

Screenshot 2016-08-12 14.12.14

自己寫的部分也轉換了,幾乎都是大小寫、方法名稱等為了讓程式更”Swifty”的改變:

Screenshot 2016-08-12 14.12.14

按下儲存後,還是會看到一些警告,是關於效能方面的更新,也只能跟著按下更新了:

Screenshot 2016-08-12 14.15.52

此時你的專案應已順利轉換成Swift3,趕快執行看看:

Screenshot 2016-08-12 14.18.26

當然,這個轉換精靈也不是完美的,有些狀況你還是必須手動來調整,目前已知的有:

在if-let句子中的where改成逗號

若你的程式中有這樣的where關鍵字,限定if-let並且在某些狀況下要做什麼時,必須調整為逗號(,):

Screenshot 2016-08-12 14.43.06

改為逗號:

Screenshot 2016-08-12 14.44.54

enum case中的字改為小寫

Screenshot 2016-08-12 14.50.48

不論是舊的Swift專案,或是開新專案撰寫時,也都蠻常會遇到被要求調整,Build時大多數都可以得到建議,萬一還是不行時,就得到官網看看最新的語法了。

延伸閱讀:

相關課程: