一文读懂Xcode 9 所有更新:全新模拟器,兼容Swift低版本等

2018-03-01 17:33:55 浏览数 (1)

代码重构功能增强

这次 Xcode 9 对代码重构功能有较大的提升,首先是重命名功能,在编辑器中点击类名,然后选择 Refactor -> Rename:

这时,重命名的预览界面会直接显示在编辑器中:

从图中可以看到,ViewController 类所有引用它的地方,所在的文件位置,都直接铺在了代码编辑器里面,只需要滚动编辑框,就可以很轻松的看到这次重构影响的所有地方,非常方便。

Rename 这个功能说起来是很常用的一项,我自己就经常使用。可惜 Xcode 前几个版本对 Swift 支持不好,在开发 Swift 项目时只好手动来做 Rename,这次终于算是解决了,并且还提供了更好的体验。

另外,这次 Xcode 9 还解决了重命名在 Swift 语言中的一个老问题,就是:

常用 Swift 的同学应该都知道这个,以前版本的 Xcode 不支持 Swift 语言的重命名操作。 等了好几个 Xcode 版本, 这次终于是支持了。

新的 Xcode 还提供了快捷菜单,按住 Cmd 键, 再点击相应的变量或者类名,就会弹出快捷菜单:

快捷菜单中,提供了诸如重命名,转到定义,快速提示这些操作。

Swift 低版本兼容

XCode 9 使用 Swift 4 编译器。 这次新的编译器同时可以支持 Swift 3, 这样就不用立即修改项目的 Swift 代码了。 前几个版本的 Xcode 升级后,都会带来 Swift 编译器的升级,而之前的升级都是不做向下兼容的,必须把整个项目的代码都修改一遍。

可以在项目设置中选择当前 target 使用的 Swift 版本:

Main Thread Checker

顾名思义, Xcode 9 的调试器现在可以检测 UI 操作是否在主线程中了。 以往开发中的一个常遇到的问题,就是在非主线程操作 UI 元素。 现在 Xcode 9 在调试 APP 的时候会自动附带 Main Thread Checker, 一旦遇到这类问题,就会在控制台中报告给开发者,就像这样:

2017-09-2723:47:23.042830 0800VisionSample[8361:2640850][reports]MainThreadChecker: UIAPIcalledonabackgroundthread: -[UIView setAlpha:]

同时,在代码编辑器中,也会高亮显示相应的代码行:

以往这种在非主线程操作 UI 的问题很难发现,而且我相信这类问题是大家都会常常遇到的。 在 Xcode 9 中,这个老大难问题也有了更好的解决方案。

文件操作改进

现在你在 Xcode 中拖动文件时,会相应的改变文件系统了。 我们都知道,Xcode 左边栏中黄色的小文件夹叫做 Group:

在以前的 Xcode 版本中, 直接在这里面移动文件是不会影响文件系统位置的,比如把 ViewController.swift 文件移动到 group1 中,不会影响它在文件系统中的位置。

所以以前在移动文件的时候,我们需要先在文件系统中把文件移动一遍,也许当初 Xcode 设计 group 的初衷是为了把逻辑分组和文件系统分开。

深度集成 Github

Xcode 以前的版本也包含了版本控制的集成,这次更是对 Github 这个最流行的 Git 托管平台做了定制化的集成。 在 Xcode 的 Preference -> Account 设置菜单里面, 现在可以绑定你的 Github 账号:

绑定成功后,你可以在 Xcode 9 新增的源代码导航视图中看到项目的完整记录:

点击 Source Control 的 Clone 菜单项,可以看到你的 Github 账号中所有的内容:

在这个界面的下方,还可以看到这个工程的 Star,Fork 数量,以及 README 文件。 只需要点击右下角的 Clone 按钮,即可把项目从 Github 中复制下来。

在导航视图中,我们还可以看到每一个 commit 的细节:

你还可以点击 View on Github 选项,跳转到这个项目的 Github 页面上。 在这个页面上,如果是 Xcode 工程,还会看到 Open in Xcode 按钮:

点击这个按钮,你就可以直接在本地的 Xcode 打开这个项目, 后台的 Clone 操作完全透明了。 从这里可以看出,Xcode 对 Github 的深度集成是双向的,一定是一个用了心思做的产品。

模拟器升级

Xcode 9 对模拟器的改进也可以算的上是近几年最大的一次。 首先,模拟器的外观做了很大的更新,更加拟物化,并且,可以多个模拟器同时运行,方便多屏幕调试,比如 UI 先关的工作。 这点大家之前应该也都了解了。

下面是多个模拟器同时运行的截图:

全新的构建系统

Xcode 9 这次提供了一个全新的构建系统。 这个构建系统完全使用 Swift 语言写成,基于 Apple 的 llbuild 引擎。

新的构建系统默认是不开启的,你可以到 File -> Project Settings... 中打开项目设置中找到:

现在还是 Preview 版本,Xcode 后面的版本会把它作为默认构建系统,感兴趣的同学也可以尝试一下。

总结

总体来说,Xcode 9 的这次升级相比以前的版本,算是一个步伐很大的更新。 全新的模拟器,Wifi 调试,新的构建系统,对 Swift 更加完善的支持,等等这些,都算是一次质的飞跃。 这里给大家列出的也只是这次 Xcode 更新的一部分。 完整的内容大家还可以参看这里:https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/Whats

0 人点赞