美文网首页
swift4新特性

swift4新特性

作者: 妹子爱编程 | 来源:发表于2017-09-28 15:31 被阅读245次

    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 代码

    相关文章

      网友评论

          本文标题:swift4新特性

          本文链接:https://www.haomeiwen.com/subject/yzgfextx.html