Swift 1.2版本新特性

Swift 1.2版本新特性,第1张

概述随着Xcode6.3正式版本的推出,Swift语言也正式进入1.2版本,那么1.2版本有什么新特性呢?来快速了解一下吧。 1.速度的提升 速度的提升首先体现在对工程中增量的单独编译,这使得我们在改动较大的工程的时候,运行速度会得到大幅度的提升。 其次体现在Swift自己的运行库的运行时性的增强。Swift刚推出时自己的库运行速度不够快,现在在这个方面做了大幅度的提升。 2.可选绑定的简化 之前在S

随着Xcode6.3正式版本的推出,Swift语言也正式进入1.2版本,那么1.2版本有什么新特性呢?来快速了解一下吧。

1.速度的提升

速度的提升首先体现在对工程中增量的单独编译,这使得我们在改动较大的工程的时候,运行速度会得到大幅度的提升。

其次体现在Swift自己的运行库的运行时性的增强。Swift刚推出时自己的库运行速度不够快,现在在这个方面做了大幅度的提升。

2.可选绑定的简化

之前在Swift和OC的对比中我们讲过了Swift中的可选绑定,也就是常用的if - let结构,来看看之前的例子:

if let stock = findStockCode("Apple") {    if let sharePrice = stock.price {        let totalCost = sharePrice * 100        println(totalCost)    }}

如果有多个可选绑定,那么需要纵深地来写,也就说我们在不停地嵌套这些if let,看起来很复杂,括号过多容易出错,在1.2版本中优化了这个结构,我们可以把所有的if let写在一句中:
if let stock =findStockCode("Apple"),let sharePrice = stock.price{let totalCost = sharePrice * 100println(totalCost)}

我们只需要写第一句判断语句if,之后的let语句可以用,分隔并排来写,这样只需要一对大括号{},语法简洁了不少。

3. as用法的改动

如果你之前在1.1版本编过工程,那么当1.2版本更新的时候工程里的报错可能会吓你一跳,别担心,大部分都是由于as用法的改动。

请看图:


如果我们有一个mytableVIEw1它是一个UIVIEw把它转成NSObject的话是向上转型,那么我们使用as就可以。

如果要向下转型,我们确定它是UItableVIEw类型的,那么我们可以使用as!来转型,这叫强制下转。如果我不确信mytableVIEw1是什么类型的,它可能是一个UItablevIEw也可能是一个UIbutton,那么向下转型时我需要使用as?,这叫安全下转。


4.Swift原生集合类型Set

接触过数学的话我们肯定对集合不会陌生,集合和数组的区别是数组中可以有重复的元素,但是集合中不会有重复的元素。之前在Swift中是没有Set这个数据类型的,我们只能使用OC中的NSSet,现在Swift中有原生的集合类型Set了。


5.常量的延迟加载

我们知道Swift中要求类初始化时类的所有属性必须被初始化,变量可以有懒加载,现在常量也有了延迟加载机制:

let 饿:Boolif 吃过饭了{饿 = false} else {饿 = true}

我们定义了一个常量但是没有赋值,我们可以在使用它之前给它赋值。

6.与OC桥接的变化

Swift与OC的互动和桥接还在衍生中。

首先是可选类型的互通,在OC中有一个关键字叫nonnull(非空),比如OC中的nonnull Nsstring在Swift中就是String,同理OC中的nullable Nsstring在Swift中就是String?

第三种是未确定是否为空,null_unspecifIEd Nsstring对应Swift中的String!

以上是可选类型的互通,其次是桥接的变动,现在Swift中不再接受Nsstring和String的互通了,我们在Swift中逐渐淘汰Nsstring的使用。

7.迁移助手

那么在Swift版本升级之后如何快速升级我们自己的程序呢?Xcode中新增了迁移助手,可以帮助我们升级我们程序的版本:

具体位置如图:


大家可以试一下。

总结

以上是内存溢出为你收集整理的Swift 1.2版本新特性全部内容,希望文章能够帮你解决Swift 1.2版本新特性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1088033.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存