xcode8正式版本可以下载了,里面搭载了swift3。swift3和swift2语法是不兼容的,所以旧代码需要转换才可以用。
xcode8提供了转换工具。我用我的一个swift2的项目来做试验,结果屏幕一片红,全是编译错误。看来转换工具不太得力。转而手工一个一个修改。
xcode提供了针对编译错误的建议修复功能,还是很贴心。只是也不是所有的建议都是对的。这个版本,API的变动很大,比如CGMakePoint函数消失了,让人不得不用CGPoint的构造函数。
有一个很搞笑也很气人的修复建议。我用了string.componentsSeparatedBy(_:)函数,xcode8先提示改为string.componentsSeparated(by:)函数,然后提示改为string.componentsSeparatedBy(by:),接着提示把参数by参数删掉又变为原来的string.componentsSeparatedBy(_:)。如此循环往复。
这个修复提示就像医生给你开药治好你的口疮,但副作用是导致了痔疮;接着治疗痔疮,但副作用又导致了口疮。
最后看了String类的源码才知道正确的是string.components(separatedBy:)。
网友评论