本篇为 2017 WWDC Session 402 笔记,原视频在这里
var targetControl: [UIControl & Shakeable]
再例如,在OC中,我们会有如下代码:
@property (weak) NSView<NSTextInputClient> *client;
在Swift4中,直接可以用以下语句来实现
var client: [NSView & NSTextInputClient]?
Swift3:
let values = "One, Tow,Three...."
var i = values.characters.startIndex
在Swift4中,变成了
Swift4:
let values = "One, Tow,Three...."
var i = values.startIndex
values[i ..< values.endIndex]
在Swift4中,直接改成了:
value[i...]
利用i...这种类型,会自动匹配到string结尾
var str = "Q: How does the project \(projectName) do in this process? A: It followed these steps: \(step1), \(step2),\(step3)... Q: That's very helpful."
在Swift4中可以写成:
var str = """
Q: How does the project \(projectName) do in this process?
A: It followed these steps: \(step1), \(step2),\(step3)...
Q: That's very helpful.
"""
看起来更加的结构化。
当然,由于Session的时间限制,肯定没有把所有Swift4的特性说全。仅就列出来的这几个,我个人比较喜欢的有 XCode支持Swift的refactor,Swift编译速度加快,以及String本身包含了Characters Collector这几个。
由于Swift的开源属性,也使得Swif借由社区的力量越来越好用以及越来越强大。这个对iOS开发者来说是一个天大的好事。
再加上最近WWDC上release出来的几个强大的SDK,例如CoreML,ARKit等,个人觉得iOS开发者的好日子来了。
如果你是Swift新手,可以参考下我之前写的30天30个Swift小App
相关Github地址为: