前言
隨著Swift 3 release版本正式發布,我們的項目也開始了Swift3的遷移工作。含著淚,做吧!!!
Talk is cheap, show me the code
Alamofire
Alamofire是Swift開發的非常優秀的網絡加載庫,之前項目中一直使用它來做網絡加載,但是Swift3開始Alamofire最低支持iOS9+,對于需要適配iOS8+的我們來說,無疑是個噩耗
針對這個情況有兩種方法:
- 找替代庫-為此我將網絡加載庫換成了Just 一個輕量級的網絡加載庫,關于Just的使用在這里不做太多贅述,感興趣的讀者可以閱讀以下這篇文章-Just-一個輕量級網絡加載庫
- 自己實現
類轉換部分
Swift3開始Apple去除了Foundation框架,由此一些類也發生了改變:
Swift3_class.jpg
這是這次更新替換的類,估計以后會替換更多(oh, my god)
GCD
Swift3對GCD做了很大的改變,更加Swift化了,現在GCD用起來也很方便,關于Swift3中GCD的用法請看這篇文章-Swift3-GCD用法簡介
應用級別
當我費了九牛二虎之力 消除了所有的錯誤和警告之后,滿心歡喜的運行程序,結果是應用直接黑屏.
趕緊找原因吧...
解決方案:
Swift3_02.png
問題就出在這個方法上面,這里Xcode8不會做自動轉換,也不會報錯和警告
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool