博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift 1.2版本新特性
阅读量:5930 次
发布时间:2019-06-19

本文共 1576 字,大约阅读时间需要 5 分钟。

随着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中新增了迁移助手,可以帮助我们升级我们程序的版本:

具体位置如图:

大家可以试一下。

你可能感兴趣的文章
ubuntu安装LDAP
查看>>
计算机网络术语总结4
查看>>
新手小白 python之路 Day3 (string 常用方法)
查看>>
求职路 第二章 深圳篇
查看>>
如何限制青少年无节制的玩电脑--使用智能卡登录系统
查看>>
HTML5 Geolocation API工作原理[转载]
查看>>
soapUI的简单使用(webservice接口功能测试)
查看>>
框架 Hibernate
查看>>
python-while循环
查看>>
vs2008 x64编译环境 忽略了 #ifdef WIN32
查看>>
【微信小程序】再次授权地理位置getLocation+openSetting使用
查看>>
手机端上传图片及java后台接收和ajaxForm提交
查看>>
HDU 5030 Rabbit's String
查看>>
【MSDN 目录】C#编程指南、C#教程、ASP.NET参考、ASP.NET 4、.NET Framework类库
查看>>
windows服务 2.实时刷新App.config
查看>>
jquery 怎么触发select的change事件
查看>>
SpringMVC的页面几种返回方式
查看>>
angularjs指令(二)
查看>>
(原創) 如何建立一个thread? (OS) (Linux) (C/C++) (C)
查看>>
<气场>读书笔记
查看>>