Swift 1.2版本新特性

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

随着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 * 100
println(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 饿:Bool
if 吃过饭了
{
饿 = 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中新增了迁移助手,可以帮助我们升级我们程序的版本:

具体位置如图:


大家可以试一下。

目录
相关文章
|
8月前
|
存储 算法 Swift
swift中的set特性
swift中的set特性
52 1
|
2月前
|
存储 定位技术 Swift
Swift 中的枚举与结构体,包括它们的定义、特性、使用场景及示例
本文深入探讨了 Swift 中的枚举与结构体,包括它们的定义、特性、使用场景及示例。枚举适合表示有限的、离散的状态或选项,结构体则适用于具有特定属性和行为的数据结构。两者在存储方式、继承性和灵活性上有所不同,但在实际开发中常结合使用,以充分发挥各自优势。
50 3
|
2月前
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
36 2
|
2月前
|
安全 数据处理 Swift
深入探索iOS开发中的Swift语言特性
本文旨在为开发者提供对Swift语言在iOS平台开发的深度理解,涵盖从基础语法到高级特性的全面分析。通过具体案例和代码示例,揭示Swift如何简化编程过程、提高代码效率,并促进iOS应用的创新。文章不仅适合初学者作为入门指南,也适合有经验的开发者深化对Swift语言的认识。
58 9
|
6月前
|
存储 安全 Swift
Swift高级特性:泛型与协议
【7月更文挑战第10天】Swift高级特性:泛型与协议增强代码复用与类型安全。泛型允许编写通用代码,如`swap`函数和泛型`Stack`结构体,支持类型约束如`Comparable`。协议定义行为蓝图,类型遵循协议需实现其要求。通过两者结合,构建高效灵活的代码结构。
|
Swift 图形学 数据安全/隐私保护
Swift 各版本
介绍Swift各个历史版本
333 0
Swift 各版本
|
Swift
swift微博第14天(新特性的引导图)
swift微博第14天(新特性的引导图)
197 0
swift微博第14天(新特性的引导图)
【Swift4】(6) 闭包 | 闭包应用 | 闭包作为函数参数 | 捕获特性
【Swift4】(6) 闭包 | 闭包应用 | 闭包作为函数参数 | 捕获特性
122 0
|
安全 JavaScript 前端开发
Swift4语法新特性(二)
Swift4语法新特性
145 0
|
存储 安全 Java
Swift4语法新特性(一)
Swift4语法新特性
119 0