当前位置:   article > 正文

Swift 【记一次Swift4.1→Swift4.2语法过渡】_swift 单个文件升级语法

swift 单个文件升级语法

 

背景

  1. WARNING ITMS-90725: "SDK Version Issue. This app was built with the iOS 11.3 SDK.
  2. Starting March 2019, all iOS apps submitted to the App Store must be built with the iOS 12.1 SDK or later,
  3. included in Xcode 10.1 or later."

2019年3月份起,就不可以用当下的Xcode 9.4.1打包上传代码了,升级Xcode 10迫在眉睫。上周五开会立下军令状,3日内完成Swift 4.1到Swift 4.2的语言升级。今天已是周一,好在如期完成,才有时间在这闲扯几句。

 

 

准备原料

 

更新你的Xcode

建议下载Xcode 10.1版本,不要直接覆盖升级,因为在对比代码差异时会用到之前的。

 

准备最新的Cocoapods环境,你可能会用到以下几个命令:

  • 安装或升级RVM(Ruby Version Manager - Ruby版本管理器)
$ curl -L get.rvm.io | bash -s stable 
$ source ~/.bashrc  
$ source ~/.bash_profile 
$ rvm -v  

 

  • 用RVM升级Ruby
$ rvm list known
$ rvm install 2.4.1 
$ ruby -v 

 

  • 升级Cocoapods版本
$ sudo gem install -n /usr/local/bin cocoapods --pre
$ pod --version

 

更新本地Cocoapods库:

可参考之前快速升级本地Cocoapods库文件的办法

https://wangzhongyao.blog.csdn.net/article/details/84169233

友情提示:执行上面命令的时候,不要考验自己的网速够不够快,有5块零钱去买个梯子好一些。

 

 

实现

 

升级Cocoapods引入的第三方库文件

在升级语言时,如果有Pods库未升级的阻隔,那大概率编译后自己代码中的error无法显现。所以我们首先要做的是升级Pods库。

如果引入的是OC写的库,就不必升级。

若是Swift写的库,则需要检查是否适配了Swift 4.2语言。如下:

  1. #if swift(>=4.2)
  2. let curveUserInfoKey = UIResponder.keyboardAnimationCurveUserInfoKey
  3. let durationUserInfoKey = UIResponder.keyboardAnimationDurationUserInfoKey
  4. let frameEndUserInfoKey = UIResponder.keyboardFrameEndUserInfoKey
  5. #else
  6. let curveUserInfoKey = UIKeyboardAnimationCurveUserInfoKey
  7. let durationUserInfoKey = UIKeyboardAnimationDurationUserInfoKey
  8. let frameEndUserInfoKey = UIKeyboardFrameEndUserInfoKey
  9. #endif

当然,在检查引入的第三方库时,可能引入该库的当前版本并没有适配。我们可升级库版本到最新,然后检查是否可用。

在所有Pods中第三方库均检查完毕后,我们可以新建一个基于Swift 4.2的空白项目,然后将修改完毕后的Pods导入,运行如果无误,那么Pods的升级完毕。

 

升级你自己的代码

在Pods升级完毕后,你自己代码中的bug会一股脑儿的出来。如下图:

error 999+?这其实只是冰山一角。具体怎么改?95%的bug可以通过提示点一点解决。4%呢需要下点儿功夫,比如说一些方法变更、枚举变更后无法通过提示一键生成。文章后面附更改方法。

大概改了1天,刚过了情人节没几天,嗯,这个数字还不错。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/603309
推荐阅读
相关标签
  

闽ICP备14008679号