swift3.1 快速上手系列(三)

来源:互联网 发布:传奇技术联盟网络磁盘 编辑:程序博客网 时间:2024/05/29 04:45

swift 3.x 还在学习中,swift 4 的脚步就已到来。生活就是这样,必须保持不断学习的劲头,才能在这年轻的战场上脱颖而出。但要说明的是,swift 各种版本的更新与迭代,都是向着更简洁、更方便、更强大发展,让 IOS 开发更优雅。

1. 遍历构造函数 convenience

默认情况下,所有的构造方法都是指定构造函数 Designated,使用 convenience 修饰的构造函数叫做便利构造函数,便利构造函数通常在对系统的类进行构造函数的扩充时使用。

遍历构造函数的特点:
(1)便利构造函数通常是写在 extension 中;
(2)在便利构造函数中需要明确调用 self.init(),只有便利构造函数中可以调用 self.init();
(3)便利构造函数不能被重写或者 super;
(4)便利构造函数可以返回 nil。

2. swift 懒加载

常规写法:

lazy var name: String = {    return "FG"}()

完整写法:

lazy var name: String = { () -> String i    return "FG"}()

本质是一个创建一个闭包 {} 并且在调用该属性时执行闭包 () 。

与 OC 的懒加载不同的是 swift 懒加载闭包只调用一次,再次调用该属性时因为属性已经创建,不再执行闭包。

3. swift 计算型属性

常规写法:

var name: string {    return "FG"}

完整写法:

var name: string {    get {        return "FG"    }}

计算型属性本质是重写了 get 方法,其类似一个无参有返回值函数,每次调用该属性都会执行 return。

swift 中懒加载与计算型属性的对比

相同点
(1)使用方法基本一致;
(2)都是用 var 声明。

不同点
实现原理不同

(1)懒加载是第一次调用属性时执行闭包进行赋值;
(2)计算型属性是重写 get 方法。

调用 {} 的次数不同

懒加载的闭包只在属性第一次调用时执行 计算型属性每次调用都要进入 {} 中, return 新的值。

原创粉丝点击