ios – 迁移到惯用的Swift 2的核对清单(AKA在哪里是Swift 2过渡指南)?

我一直在尝试找到 Swift 2的过渡指南,特别是开发人员在将Swift 1 / 1.2代码库迁移到Swift 2时应该注意的事情.显然你在Xcode中有迁移助手,但这只能真正涵盖了驴子工作,而不是需要更多智慧思想的东西.

基于我在Swift 2上找到的资源,我整理了以下清单:

> try / catch / throw错误处理 – 用于可恢复的错误;相应地修改错误处理代码.特别是,检查NSError的所有使用并回调代理报告可恢复的错误.
>使用符合ErrorType的枚举来定义您自己有意义的错误.
>使用#available访问较新的平台API – 检查针对应用程序部署目标的API使用并相应地进行修改
>协议扩展 – 将尽可能多的代码移动到这些代码中以帮助重用.特别是将全局函数重构为协议扩展.
>可空性注释&泛型 – 删除多余的可选绑定和类型转换
>使用do {}来控制范围并尽早释放大量资源
>移动旧的do {…} while循环重复{}(以消除歧义并提高可读性)
>使用警卫提前返回并避免过度压痕
>使用延迟清理代码,如关闭文件等.
>使用选项集而不是将值进行OR运算(例如viewAnimationOptions = [.Repeat,.CurveEaseIn,.TransitionCurlUp])
>查看以前仅需要支持测试的公共访问者说明符.使用@testable并导入MyApp.
>将单例switch语句移动到新的if case .MyEnumCase(let value)= bar()其中value!= 42 {doThing(value)}
>使用“for … in”过滤来清理包含if过滤语句的循环,例如mySequence中的值,其中value!=“”{}
>对C函数指针的本机支持 – 提供使用闭包或全局函数(在执行此操作时不捕获本地上下文)
>修复任何新的let / var警告
>修复任何未使用的变量警告
>在调用super.init之前,可用的初始化程序现在可以返回nil – 删除任何以前需要的解决方法.在返回nil之前,指定的初始化程序仍然必须初始化所有存储的属性.

资料来源:

https://developer.apple.com/swift/blog/?id=29

https://developer.apple.com/swift/

https://developer.apple.com/library/prerelease/ios/releasenotes/DeveloperTools/RN-Xcode/Chapters/xc7_release_notes.html#//apple_ref/doc/uid/TP40001051-CH5-SW1

https://developer.apple.com/videos/wwdc/2015/?id=106

http://www.raywenderlich.com/108522/whats-new-in-swift-2

我错过了什么?

部分问题是Swift 2继续在WWDC之后发展.因此,即使是今年的WWDC视频已经可能已经过时,或者至少不是整个故事.

解决方法

不幸的是,目前还没有来自Apple的官方“过渡指南”.

每当他们发布新版本的Swift时,Apple都会更新The Swift Programming Language (Swift 2),因此它是获取Swift 2(或更高版本)最新信息的最佳来源之一.整个语言有很多解释和示例代码,而不仅仅是更改,但这绝对是您现在正在寻找的信息的最佳来源.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...