What’s new in Xcode 9

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,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. 优化 Markdown。现在 Xcode 支持了 markdown
    的高亮语法以及一系列标题的字体大小。

于编排区域的飞快跨反受,也能链接到更多的Header。

总结

运用下,感觉Xcode 9的诚心满盈,苹果终于要转一下本身令人指责的IDE了。但Beta本各种非平稳要一如既往,时不时的从不起头模拟器,必须使统统退出Xcode重打开,稳定性还有待加强。

文中如发不当漏洞,欢迎指正。

Reference

  • Release
    Notes
admin

网站地图xml地图