Swift知识体系
2019-01-15 19:52:33 85 举报
AI智能生成
swift知识体系整理,根据官方文档初步整理,方便swift语言学习。
作者其他创作
大纲/内容
构造过程(Initialization)
存储属性的初始赋值
构造器
默认属性值
自定义构造过程
构造参数
参数的内部名称和外部名称
不带外部名称的构造器参数
可选属性类型
构造过程中常量属性的修改
默认构造器
结构体的逐一成员构造器
值类型的构造器代理
类的继承和构造过程
指定构造器和便利构造器
类的构造器代理规则
两段式构造过程
构造器的继承和重写
构造器的自动继承
可失败构造器
枚举类型的可失败构造器
带原始值的枚举类型的可失败构造器
构造失败的传递
重写一个可失败构造器
可失败构造器 init!
必要构造器
通过闭包或函数设置属性的默认值
析构过程(Deinitialization)
析构过程原理
析构过程实践
自动引用计数器(Automatic Reference Counting)
自动引用计数器的工作机制
自动引用计数器实践
类实例之间的循环强引用
解决实例之间的循环强引用
弱引用
无主引用
无主引用以及隐式解析可选属性
闭包引起的循环强引用
解决闭包引起的循环强引用
定义捕获列表
弱引用和无主引用
可选链式调用(Optional Chaining)
使用可选链式调用代替强制展开
为可选链式调用定义模型类
通过可选链式调用访问属性
通过可选链式调用调用方法
连接多层可选链式调用
在方法的可选返回值上进行可选链式调用
错误处理(Error Handling)
表示并抛出错误
处理错误
用 throwing 函数传递错误
用 do-catch处理错误
将错误转换成可选值
禁用错误传递
指定清理操作
类型转换(Type Casting)
检查类型
is
向下转型(Downcasting)
Any和AnyObject的类型转换
AnyObject类型
Any类型
嵌套类型(Nested Types)
嵌套类型实践
引用嵌套类型
扩展(Extensions)
扩展语法
计算型属性
构造器
方法
实例方法和类方法
可变实例方法
mutating
下标
嵌套类型
子主题
协议(Protocol)
协议语法
属性要求
方法要求
mutating方法要求
构造器要求
构造器要求在类中的实现
可失败构造器要求
协议作为类型
委托(代理模式)
通过扩展添加协议一致性
通过扩展采纳协议
协议类型的集合
协议的继承
类类型专属协议
协议合成
检查协议一致性
可选的协议要求
协议扩展
提供默认实现
为协议扩展添加限制条件
泛型(Generics)
泛型所解决的问题
泛型函数
类型参数
命名类型参数
泛型类型
扩展一个泛型类型
类型约束
关联类型
Where 子句
访问控制(Access Control)
模块和源文件
访问级别
访问级别基本原则
默认访问级别
单 target 应用程序的访问级别
框架的访问级别
单元测试 target 的访问级别
访问控制语法
自定义类型
元组类型
函数类型
枚举类型
嵌套类型
子类
常量、变量、属性、下标
Getter 和 Setter
构造器
默认构造器
结构体默认的成员逐一构造器
协议
协议继承
协议一致性
扩展
通过扩展添加协议一致性
泛型
类型别名
高级运算符
位运算符
按位取反运算符
按位与运算符
按位或运算符
按位异或运算符
按位左移、右移运算符
无符号整数的移位运算
有符号整数的移位运算
溢出运算符
溢出加法(&+)
溢出减法(&-)
溢出乘法(&*)
数值溢出
优先级和结合性
运算符函数
前缀和后缀运算符
复合赋值运算符
等价运算符
自定义运算符
自定义中缀运算符的优先级
基本运算符
术语
一元运算符
二元运算符
三元运算符
赋值运算符
算数运算符
四则算数运算符
求余运算符
一元负号运算符
一元正号运算符
组合赋值运算符
比较运算符
三目运算符
空合运算符
区间运算符
闭区间运算符
半开区间运算符
逻辑运算符
逻辑非(!a)
逻辑与(a&&b)
逻辑或(a||b)
逻辑运算符组合计算
使用括号明确优先级
字符串和字符
字符串字面量
初始化空字符串
字符串可变性
字符串是值类型
使用字符
连接字符串和字符
字符串插值
Unicode
Unicode标量
字符串字面量的特殊字符
可扩展的字形群集
计算字符数量
访问和修改字符串
字符串索引
插入和删除
比较字符串
字符串/字符相等
前缀/后缀相等
字符串的Unicode表达形式
UTF-8表示
UTF-16表示
Unicode标量表示
集合类型(Collection Types)
集合的可变性
数组(Arrays)
数组的简单语法
创建一个空数组
创建一个带有默认值的数组
通过两个数组相加创建一个数组
用字面量构建数组
访问和修改数组
数组的遍历
集合(Sets)
集合类型的哈希值
集合类型语法
创建一个空集合
用数组字面量创建集合
访问和修改集合
集合的遍历
集合操作
集合的基本操作
集合成员关系和相等
字典(Dictionaries)
字典的简单语法
创建一个空字典
用字面量创建字典
访问和修改字典
字典的遍历
控制流(Control Flow)
For-In循环
While循环
while
repeat-while
条件语句
If
Switch
不存在隐式贯穿
区间匹配
值绑定
where
复合匹配
控制转移语句
continue
break
循环中的break
switch语句中的break
fallthrough贯穿
return
throw
带标签的语句
提前退出guard
guard let name = person["name"] else {
return
}
检测API可用性
if #available(iOS 10, macOS 10.12, *) {
// Use iOS 10 APIs on iOS, and use macOS 10.12 APIs on macOS
} else {
// Fall back to earlier iOS and macOS APIs
}
函数(Functions)
函数的定义与调用
函数的参数与返回值
无参数函数
多参数函数
无返回值函数
多重返回值函数
可选元组返回类型
函数参数标签和参数名称
参数标签
忽略参数标签
默认参数值
可变参数
输入输出参数
函数类型
使用函数类型
函数类型作为参数类型
函数类型作为返回类型
嵌套函数
闭包(Closures)
闭包表达式
闭包表达式语法
根据上下文推断类型
单表达式闭包隐式返回
参数名称缩写
运算符方法
尾随闭包
值捕获
闭包是引用类型
逃逸闭包
自动闭包
枚举(Enumerations)
枚举语法
使用switch语句匹配枚举值
关联值
原始值
原始值的隐式赋值
递归枚举
类和结构体(Classes and Structures)
类和结构体对比
定义语法
属性访问
结构体类型的成员逐一构造器
结构体和枚举是值类型
类是引用类型
恒等运算符
等价于(===)
不等价于(!==)
指针
字符串、数组和字典类型的赋值和复制
属性(Properties)
存储属性
常量结构体的存储属性
延迟存储属性
存储属性和实例变量
计算属性
便捷setter声明
只读计算属性
属性观察器
全局变量和局部变量
类型属性
类型属性语法
获取和设置类型属性的值
方法(Methods)
实例方法
方法的局部参数名称和外部参数名称
修改方法的外部参数名称
self属性
在实例方法中修改值类型
在可变方法中给self赋值
类型方法
下标(Subscripts)
下标语法
下标用法
下标选项
继承(Inheritance)
定义一个基类
自类生成
重写
访问超类的方法,属性及下标
重写方法
重写属性
重写属性观察器
防止重写
0 条评论
下一页