Swift 4.2正式发布

栏目: Swift · 发布时间: 7年前

内容简介:在Swift 4发布了一年之后,Swift 4.2版本也在语言层面,Swift 4.2完成了从Swift 4.1Swift 4.2添加了在运行时查询类型来获得条件一致性的可能性,而这在Swift 4.1中会发生崩溃,例如:

在Swift 4发布了一年之后,Swift 4.2版本也 正式推出 。这一版本带来了语言和标准库方面的改进,包括更好的泛型、Hashable协议以及随机数生成。另外,Swift语言维护者Ted Kremenek写道,Swift 4能提供更快的编译速度,并提升了调试体验。

在语言层面,Swift 4.2完成了从Swift 4.1 开始的泛型条件一致性开发工作,它实现了一个规范,即某种类型必须满足某些条件才符合某种协议。例如:

extension Array: Equatable where Element: Equatable {
  static func ==(lhs: Array<Element>, rhs: Array<Element>) -> Bool { ... }
}

Swift 4.2添加了在运行时查询类型来获得条件一致性的可能性,而这在Swift 4.1中会发生崩溃,例如:

if let array = items as? Equatable { //– safely use == here }

Swift 4.2另外一个有用的功能是 Enum case 的衍生集合 ,可以通过.allCases属性迭代所有符合CaseIterable协议的case。

其他的改进包括提供一组新的API用于 随机数生成和重排更好 的散列 ,以及类型安全的 动态成员查

从调试前端来看,Swift编译器现在支持使用#warning和#error指令在代码中标记问题。例如:

#warning("Unsafe operation")
#error("Prodive your credentials here")

Kremenek还特别指出编译器性能获得了提升,这要归功于批处理模式编译和改进的运行时性能(因为对retain/release周期的调用发生了变化)。

另外,iOS开发人员Javier Soto在 推文 中写道:

一年之后,Swift 4.2版本的 KVO错误还是没有解决 。除非你想体验随机崩溃的感觉,否则不要在iOS程序中使用Swift KVO语法。

具体来说,当主线程尝试注册观察者(例如更新UI元素)的同时,在后台线程运行KVO keyPathsForValuesAffectingValue 方法可能就会触发这个bug。

对于所有受到影响的开发人员,可以使用 PMKVObserver ,它是安全强类型的Swift 4 KVO语法替代品。

Swift 4.2与Swift 4和3代码兼容,并被包括在Xcode 10中。通过 Swift Migrator工具 可以轻松实现从早先版本的迁移。

苹果公司在 WWDC 2018 发表 一个 40分钟 的演讲中 ,介绍了Swift 4的新特性概览,要了解更多详情,请参考官方公告。 Ole Begemann’s Swift 4.2 playground 是学习Swift 4.2新功能的一个很好的资源。

查看英文原文: Swift 4.2 Hits the Road

感谢无明对本文的审校。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Namo Webeditor5.5一看就懂.

Namo Webeditor5.5一看就懂.

吳聲毅 / 金禾資訊 / 20040214 / NT$ 169

一看就懂系列書全以初學者的角度切入,全書以STEP BY STEP方式撰寫,並以豐富的圖片搭配教學,在最後更加上日常生活實例運用講解,一路學來一氣呵成。為了增進學習的效率更採用高級紙品全彩印刷,這麼好的書,您還在等什麼,一看就懂系列書保證是您最佳入門學習好伙伴。 本書特色: 1、一看就懂:Step by Step操作詳盡說明、讓您一看就懂 2、精選範例:精彩實務範例生動活......一起来看看 《Namo Webeditor5.5一看就懂.》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具