前言
随着Swift 3 release版本正式发布,我们的项目也开始了Swift3的迁移工作。含着泪,做吧!!!
Talk is cheap, show me the code
Alamofire
Alamofire是Swift开发的非常优秀的网络加载库,之前项目中一直使用它来做网络加载,但是Swift3开始Alamofire最低支持iOS9+,对于需要适配iOS8+的我们来说,无疑是个噩耗
针对这个情况有两种方法:
- 找替代库-为此我将网络加载库换成了Just 一个轻量级的网络加载库,关于Just的使用在这里不做太多赘述,感兴趣的读者可以阅读以下这篇文章-Just-一个轻量级网络加载库
- 自己实现
类转换部分
Swift3开始Apple去除了Foundation框架,由此一些类也发生了改变:
这是这次更新替换的类,估计以后会替换更多(oh, my god)
GCD
Swift3对GCD做了很大的改变,更加Swift化了,现在GCD用起来也很方便,关于Swift3中GCD的用法请看这篇文章-Swift3-GCD用法简介
应用级别
当我费了九牛二虎之力 消除了所有的错误和警告之后,满心欢喜的运行程序,结果是应用直接黑屏.
赶紧找原因吧...
解决方案:
问题就出在这个方法上面,这里Xcode8不会做自动转换,也不会报错和警告
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool