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 新的值。
作者:huangfei711 发表于2017/6/21 10:43:57 原文链接
阅读:7 评论:0 查看评论