swift4新特性

1.

extension 里面可以直接访问 private 修饰的成员属性

Screen Shot 2017-09-22 at 6.36.16 PM.png

2.

聚合协议类型?

Screen Shot 2017-09-25 at 1.27.28 PM.png

新的keypaths语法

Screen Shot 2017-09-26 at 12.27.49 PM.png

下标支持泛型

Screen Shot 2017-09-26 at 12.57.05 PM.png

字符串的改进
1.Unicode字符串计算count 的正确性
2.字符串的处理速度更快,对中文文的处理速度提升2.5倍
3.Swift 4 所有String 结构下 characters 去掉,可以通过string直接访问
4.wift 4 新增了一个语法糖 ... 可以对字符串进行单侧边界取子串。

Screen Shot 2017-09-26 at 1.07.02 PM.png

5.String 当做collection来用


Screen Shot 2017-09-26 at 1.14.20 PM.png

6多行字符串字面量
字符串换行只能在中间插值 \n 来完成长字符串的换行,swift4 中引入了新的语法, '''''

Screen Shot 2017-09-26 at 1.22.40 PM.png

打印出来的效果

Screen Shot 2017-09-26 at 1.22.52 PM.png

Codeable 协议
当我们要对一个对象做持久化操作的时候,需要实现NSCoding协议,当对象的属性非常多的时候,估计大家都知道写起来很恶心。
swift4提供了Codeable协议只要遵循这个协议就可以简单的实现对象归档成 json 或者 propertyList文件

Screen Shot 2017-09-28 at 3.03.23 PM.png

程序构建过程改变

Screen Shot 2017-09-28 at 3.23.01 PM.png

Screen Shot 2017-09-28 at 3.23.49 PM.png

OC 和 swift 混合编程的时候,编译代码的时候OC文件会产生一个bridging headers 文件,这个文件包含了所有OC代码头文件API的swift版本,然后编译每一个swift文件的时候都需要编译一遍这个庞大的swift文件。造成编译速度变慢。
有了预编译 Bridging Headers 以后,编译器会在预编译阶段把 Bridging Headers 编译一次,然后插入到每个 Swift 文件中,这样就大大提高了编译速度。
苹果宣称 Xcode 9 和 Swift 4 对于 Swift 和 Objective-C 混合编译的速度提高了 40%。但是本人实测并没有快这么多,觉得差不多。

移除未调用的协议实现
当一个类的协议扩展方法没有任何地方调用的时候会移除这个
协议扩展的实现,来达到减小包的目的。

Xcode9 兼容swift3.2 代码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • XCode9新特性1. 支持远程调试2. Xcode绑定Github账号3. 支持Swift类重命名4. Swif...
    乐Coding阅读 3,566评论 3 43
  • 本篇为 2017 WWDC Session 402 笔记,原视频在这里 语法特性 Swift3中,如果将主体函数的...
    nimomeng阅读 4,323评论 0 18
  • 作者:刘铎本文为原创文章,转载请注明作者及出处 WWDC 2017 带来了很多惊喜。Swift 4 也伴随着 Xc...
    沪江技术学院阅读 31,910评论 7 127
  • 写在前面 Swift这门语言已经被越来越多的coders接受,大势所趋,尤其作为一个iOS开发者,更需要进行掌握!...
    Cocoaleeo阅读 774评论 0 5
  • 新特性列表1 序列化与反序列化2 String的多行存储3 key-value Coding的优化4 Range单...
    Dreamer_做梦的人阅读 2,781评论 0 52