What’s new in Xcode 9

图片来源官网

前言

WWDC今后, 苹果公布了一多级的Beta
版固件及工具,大家单表其一,看看Xcode 9中的新职能。如若你也想体验Xcode 9,那么你的
Mac 系统的本子至少是macOS 10.12.4.

初窥

Editor

打开Xcode 9之后,发现iOS标签多了AR
文件管理两个。并且Framework的图标也取得了统一。不再拟物。放个比较(左:Xcode
8,右:Xcode 9).

按部就班正规的覆辙,随便新建一个工程。

开拓工程的率先眼,就感觉到编辑区域看起来更赏心悦目了。和事先相比,发现是去掉了左边显示行号的边栏颜色和编辑区域联合了,所以看起来更整齐了。

按着Command ⌘
键,随便点一个办法,和前面不同的是,不会直接跳转到方法的讲明,而是会并发上边的菜谱:

万一想像往日一样一向跳转到函数讲明,则需要同时按着Control ⌃Command ⌘键再点击方法可以跳转到方法的宣示。

同样,可以试着看看点击变量有咋样变化(PS:Xcode 9的代码提醒 real、real
快了许多):

恩,比地点的多了一个Rename,当点击重命名的时候,会有一个很炫的折叠动画:

rename

点击某一个主意吧?

把前边的Extract FunctionExtract Method直白放在了这几个菜单。这样大家就足以进一步便宜的把某些实现独立提取封装成方法了:

extractedMethod

Simulator

让我们开拓模拟器看一看。

Wow!仿佛又重临了Xcode 5在此以前,而且越加细致了。

周围的按键和 home键都可以点击的。

另外还发现了有些其它效率:

  • 可以和另外版本的Xcode的模拟器共存。
  • 除却可以选择Command ⌘ + 1Command ⌘ + 2Command ⌘ + 3来缩放模拟器外,Xcode 9还匡助把鼠标移动到两个角的肆意一个角来自由缩放.
  • 可以而且开启六个例外的模拟器。

More

地点介绍的都是很容易就发现的片段新特征。要完全通晓Xcode 9,这就只可以去看官方的
Release
Notes

这就是说,接下去就按照 Release
Notes

的次第一个个来介绍。

  1. 首先,值得注意的是iOS 11不再协助 32
    位应用,假诺大家在品种的target -> General ->
    Deployment Target
    中设置系统为iOS 11,则从来编译都无法透过。假使设置为iOS 11事先的,编译仍可以的(敲黑板、划重点了)。

  2. 现在 Group
    Folder涉及了一块儿。也就是说在此之前虚拟的工程文件夹现在会自动创设实体的文本夹,而无需大家去手动导入了(好评)。而且大家在拖动文件的时候,会自动更新文件和文件目录,其他的一部分操作,比如创设、重命名、删除组都将会相应的改观文件系统中的关联目录。

    假使急需撤销GroupFolder的关联,可以在File Inspector
    中点击X就行:

    一律的,我们也足以在这边提到某一个GroupFolder

  3. 自行匹配分隔符。当我们选粤语字的时候,输入任意一个opening delimiterXcode都会
    自动匹配closing delimiter。自动匹配的相间符包括:" ", ( ),
    [ ],
    { }.个人倍感不太实用,因为大家可以直接在前面添加closing delimiter,就可以自行补全opening delimiter

auto_matched

  1. 使用command ⌘ + -压缩文字,使用command ⌘ +
    +放大文字(终于协理了)。

  2. 偏好设置 -> Font & Color 中追加了光标的样式。

  3. Asset Catelog今昔辅助了.avci, .heic, .heif格式的文本。

  4. 增加主线程检测器(Main Thread Checker)。我们都了解,我们在支付中都要在主线程访问UIKit/AppKit。这平常会出现一些莫名其妙的题目:比如图片加载需要一段时间,又比如说严重的从来Crash。假诺想理解更多可以参见线程安全类的宏图那篇随笔。文中也关系了一个检测是否是在主线程操作
    UI 的非法工具。现在,终于有了官方工具

    我们现撸个测试用例:

    dispatch_queue_t queue = dispatch_queue_create("com.newFunction", NULL);
    dispatch_async(queue, ^{
        UIView *view = [UIView new];
        [self.view addSubview:view];
    });
    

    运行后,如果是Xcode 9事先版本的话,我们可能会在控制台拿到下边的
    Log:

    This application is modifying the autolayout engine from a
    background thread after the engine was accessed from the main
    thread. This can lead to engine corruption and weird crashes.

    而现行,我们收获 Log 音讯更详细了:

    [reports] Main Thread Checker: UI API called on a background
    thread: -[UIView init]
    PID: 59536, TID: 1305198, Thread name: (com.newFunction), Queue
    name: com.newFunction, QoS: 0

    除外警告原因,进程新闻、线程音信都给了大家。更赞的是,在issue navigatorruntime
    标签中就会体现出Warning:

    而点击后直接固定到问题代码:

而在`ToolBar` 上的 `activity` 面板也会有相关的信息。  

*从左至右依次是:编译时 Warning、编译时 Error、运行时 Warning.*
  1. Undefined Behavior Sanitizer:一个新的周转时工具,可以检查整数溢出(integer overflows)无效转换(invalid casts)等。大家可以在Scheme
    里面管理这么些效率:

    Undefined Behavior SanitizerAddress SanitizerThread
    Sanitizer
    2018正版葡京赌侠诗,职能暂时不太领悟,有理解的提供下,谢谢。

  2. 近年来得以采纳通过无线形式来调试程序了,而非必须运用数据线。

    第一,想要无线调试,硬件系统必须达标要求:Xcode 9 or later、所以您的
    Mac 系统必须是macOS 10.12.4 or later, iOS 11.0 or later,iPhone和 Mac 处于相同 WiFi 下。

    下一场,先利用数据线连接你的 Mac,打开Xcode 9中的Window ->
    Devices & Simulators菜单,如下:

    勾选Connect via network,之后左边的设备名字背后会产出一个网络的图标。那多少个时候就可以拔掉数据线了。

    回到 Xcode,会意识手机仍是可以够动用。并不会提示设备断开连接之类的:

  1. 代码管理的吃水集成。现在,在Navigator bar 上多了一个 Tab:
    Source Control。无论你用的是SVN
    还是Git,现在都足以很便利的查阅管理你的代码仓库:

    Branches、Tags、Remotes一览无余。我们可以在此处
    push、pull、merge、新建分支、切换分支、新增
    Tag、查看提交历史记录、双击某一条
    commit,比较代码,添加忽略文件等等几乎拥有普通行使的一些基础意义。

    Xcode 9GitHub
    深度集成,提供了概括配置 SSH key一键克隆等功能。

  2. 新的编译系统。新的编译器已经用Swift
    重写了,性能得到了很大的升官。其中,内部搜索效果官方称为提速50x.

    新的编译系统默认是倒闭的,就算我们想要体验的话,需要在File ->
    Project Setting中选择。

  3. 优化 马克down。现在 Xcode 协助了 markdown
    的高亮语法以及系列标题的字体大小。

在编辑区域的飞跃跳转中,也能链接到更多的Header。

总结

利用下来,感觉Xcode 9的诚意满满,苹果终于要改变一下我令人非议的IDE了。但Beta版各类不平稳如故如故,时不时的打不开模拟器,必须要统统退出Xcode重新打开,稳定性还有待加强。

文中如有错误漏洞,欢迎指正。

Reference

相关文章