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
    意义暂时不太精通,有打探的提供下,谢谢。

  2. 前些天可以选择通过无线格局来调试程序了,而非必须选拔数据线。

    率先,想要无线调试,硬件系统必须达到要求:Xcode 9 or later、所以你的
    Mac 系统必须是macOS 10.12.4 or later, iOS 11.0 or later,BlackBerry和 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. 优化 马克(Mark)down。现在 Xcode 帮忙了 markdown
    的高亮语法以及一体系标题的字体大小。

在编制区域的急速跳转中,也能链接到更多的Header。

总结

使用下来,感觉Xcode 9的赤子之心满满,苹果终于要改变一下自家令人喝斥的IDE了。但Beta版各个不安静仍旧仍旧,时不时的打不开模拟器,必须要完全退出Xcode再也打开,稳定性还有待加强。

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

Reference

发表评论

电子邮件地址不会被公开。 必填项已用*标注