玩转iOS开发:iOS 11 新特性《Xcode 9》 (一)

1,820 阅读4分钟

文章分享至我的个人技术博客: https://cainluo.github.io/15096944292979.html


随着iOS 11的发布, Xcode 9也随之发布, 这次的Xcode 9更新了一大堆的东西, 对于写Swfit的同鞋们来说是一个大好的消息, 因为在Xcode 9上, 添加了对Swift的重构支持, 因为Xcode 9的代码编辑器在Swift中重写了, 所以在支持Swift上更加的友好, 比如滚动, 搜索, 重构等等.

除此之外, Xcode 9也加入了对MarkDown文件的支持, 也就是说我们可以在Xcode 9上编辑MarkDown文件, 还有Xcode 9首次加入了无线连接设备的功能, 在使用模拟器Debug的时候, 也可以同时打开多个模拟器.

说了这么多, 肯定口水都流出来了, 那我们就进入正题吧.

这次我们随便写写一个小东西, 结合Objective-CSwift两个语言来看看Xcode 9的一些新东西.

转载声明:如需要转载该文章, 请联系作者, 并且注明出处, 以及不能擅自修改本文.


Swift的快捷方式

我们可以按住Command键移动鼠标在funcvar的关键字上, 发现有一些不同的变化, 在func中, 鼠标是可点击的, 而在letvar的关键字上是没反应的:

1

再继续移动到Double, 发现也可以点击, 点击进去就可以里面的一些方法和属性:

2

还有一种情况, 在我们写if-else的时候, 由于判断写的太多, 有时候搞得自己都有些懵逼了, 这个时候, 我们也可以按着Command移动到关键字if里, 这样子我们就可以看得到整个if-else的结构了:

3

除了我们可以用Command查看if的整个结构, 我们还可以通过Control+Command呼出一个小菜单:

4

还有在Xcode 9的使用Command点击方法的呼叫方式也改变了, 它默认会弹出一个小框框, 而不是直接跳到函数的内部:

5

如果我们需要去修改的话, 可以在XcodeNavigation项里设置为Jumps to Definition:

6

除了去设置这个, 我们也可以点击一下函数名, 并且用Command + Control + J进行跳转.


重构又肥来了~

之前在Xcode 8的时候, 是不支持Swift的重构, 在Xcode 9的时候这个功能又回来了, 而且更加好用, 并且支持Objective-CSwift:

7

修改完之后记得回车确认或者是点击右上角的Done.

这里却有一个问题, 就是我在使用这个Refactor的时候, Xcode 9经常给我报错, 不知道各位老铁们有没有遇到这个问题.


补全

有时候我们用Swift声明一个结构体的时候往往都会声明一些协议, 但有时候我们在声明的时候会发生一些事, 比如忘记写协议方法, 但在Xcode 9的话就没有这个问题.

当我们忘记写协议的时候, Xcode 9会提示我们, 然后我们可以点击对应的提示去补全:

8

补全后的代码:

struct Person {
    
    let name: String
    let height: Double
    
    init(name: String, height: Double) {
        
        self.name = name
        self.height = height
    }
}

extension Person: Equatable {
    static func ==(lhs: Person, rhs: Person) -> Bool {
        return lhs.name == rhs.name
    }
}

当然, 除了这个之外, 还有Switchcase, 还有补全"", []这些的都有.

还有就是当我们遇到一些比较复杂的判断条件时, 为了可以更好的看清逻辑, 我们可以用这个补全方式:

    let latitudeString = latitudeTextField.text == "1" ? "100" : "23"

选中latitudeTextField.text == "1", 然后再用shift + (, 就可以括起来:

    let latitudeString = (latitudeTextField.text == "1") ? "100" : "23"

字体缩放

在之前, 如果我们要去调节字体的大小, 是需要到Xcode的设置里, 然后通过设置Font才能够调节, 但在Xcode 9里就不需要了.

我们可以通过Command + +或者是Command + -来缩小和放大代码的字体大小.


代码缩放

在之前的Xocde里, 我们都可以通过边线去收缩代码块, 但现在在Xcode 9里, 已经取消了这个操作(至少我是没有发现, 如果有朋友发现在哪里可以调出来, 麻烦告知一声~).

Xcode 9里, 只要是在函数的内部, 或者是结构体什么的, 总之是在{}内的, 操作Command + option + 键盘左键, 就可以缩放了, 如果要释放的话, 那么就是Command + option + 键盘右键.


代码间的行距

用惯之前的Xcode的同鞋在用Xcode 9的, 会发现一个问题, 那就是代码与代码之间的行距宽了不少, 其实在Xcode 9里提供了三种间距的方式:

  • Tight Spacing
  • Normal Spacing
  • Relaxed Spacing

包括光标的样式也有三种, 我们只要在Xcode的设置就能看到了:

9


工程地址

项目地址: https://github.com/CainRun/iOS-11-Characteristic/tree/master/1.Xcode%209


最后

码字很费脑, 看官赏点饭钱可好

微信

支付宝