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 新的值。
- swift3.1 快速上手系列(三)
- swift3.1 快速上手系列(一)
- Python快速上手(三)
- swift 3.1 快速上手系列(二)
- 快速上手RaphaelJS--RaphaelJS_Starter翻译(三)
- 快速上手RaphaelJS--RaphaelJS_Starter翻译(三)
- 快速上手RaphaelJS--RaphaelJS_Starter翻译(三)
- UnityShader快速上手指南(三)
- javaweb快速上手(三 数据库连接)
- 快速上手写spark代码系列03:开始写一个spark小脚本(1)
- Angular2 学习系列课程(版本分析+快速上手)
- android快速上手(三)常用控件使用
- Apache OFBIZ快速上手(三)--目录&&配置文件介绍
- python之lxml快速上手_ElementTree(三)
- (三)Web框架-龙卷风Tornado之快速上手
- Spring Boot 快速上手(三)数据操作
- CloudStack初探系列(三):系统初始化和上手使用
- EasyDBO快速上手(1)
- Retrain a tensorflow model based on Inception v3
- Android 禁止系统键盘和第三方键盘的方法(自撸一个自定义键盘遇到的坑)
- code[vs]1202 求和
- 绩效管理评分功能实现知识点归纳
- 43STL之集合算法
- swift3.1 快速上手系列(三)
- ffmpeg编译android的so库
- Java判断对象是否为空(包括null ,"")
- ui设计-文案(CW)
- 数组,数组API
- ACdream 1100 瑶瑶饿了(最短路+dp)
- boost交叉编译
- mysql常用语句、命令(增删改查功能)
- Unity投影(Raycast)相关的一些事