Xcode8 Use Legacy Swift Language Version的错误解决

来源:互联网 发布:淘宝开店话费充值 编辑:程序博客网 时间:2024/04/27 12:29


Xcode 8的到来,Swift版本由2.3省级到3.0语法有较大变动。

首先无论新旧项目在Xcode8.x下运行后必须设置Swift Version去适配swift语言的语法问题:

执行操作 [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly

但结果还是错误一大堆:下面是我遇到这些问题的过程 和 解决过程

错误1:Swift语法问题:因为Xcode8.0有了Swift3.0版本语法改动较大,之前都是swift2.3版本的。需要点击Edit->Convert->To Current Swift Syntax...修复,选择swift版本,我选择的是swift2.3 and later。 但我这项目之前是OC和swift混编,按此修复了所有swift文件,还是一堆的语法错误。如图:


这是点击Edit->Convert->To Current Swift Syntax...出现的对比图。左边是修改后的代码,右边是修改前的。

进行此操作后出现语言错误,一大堆,这Xcode自动修改的没问题吗?

显然Xcode让我们改成左边语法是不对的,但Xcode还让我们改?!日了狗了,后来在按照上述操作进行时先别点击sava(其实你编译一下就会报错了,有这种for循环修改的错,我回退了这些for循环的修改(直接点击中间灰色部分选择discard),所有这种discard后,其他照常修复,然后再点击save,结果就解决了Swift版本的问题。

后来使用Xcode8 正式版操作完后出现了一个新的错误:就是代码let a = xxx.xxx() 报错,主要是xxx()方法返回UIView,所以改成let a:UIView = xxx.xxx()解决了该错误。

错误2:使用CocoaPods 导入有swift语言的框架后的错误解决,首先无论怎么样你运行或者编译他都会有如图所示的错误提示:


第一对于已经适配了swift3.0的按理来说不会出现该错误了,但那时我导入已经适配swift的ReactiveCocoa还是出现了该错误。执行了Edit->Convert->To Current Swift Syntax...去修复,还是不能解决问题,

解决方法是:直接进行如下图选择Yes后编译运行问题解决



3 0
原创粉丝点击