第一部分 基础语法篇 1
第1章 Hello Swift 3
1.1 Swift简介 3
1.1.1 Swift语言简介 3
1.1.2 Swift语言开发平台 3
1.1.3 Swift语言开发工具 3
1.1.4 Swift语言开发文档 5
1.2 Swift语言编程体验 7
1.2.1 Hello, 51Code程序 7
1.2.2 演练利器Playground 9
1.3 本章小结 11
1.4 思考练习 11
第2章 变量和基本数据类型 12
2.1 Swift语言基础语法 12
2.1.1 标识符 12
2.1.2 关键字 12
2.1.3 表达式 13
2.1.4 语句 13
2.2 常量和变量 14
2.2.1 常量 14
2.2.2 变量 15
2.3 数据类型 15
2.3.1 布尔型 15
2.3.2 整型 16
2.3.3 浮点型 17
2.3.4 字符串型 18
2.3.5 数据类型的转换 18
2.3.6 元组型 20
2.3.7 可选型 21
2.4 本章小结 23
2.5 思考练习 23
第3章 常见运算符和表达式 24
3.1 算术运算符 24
3.2 赋值运算符 24
3.3 关系运算符 25
3.4 逻辑运算符 25
3.5 三元运算符 25
3.6 Nil Coalescing运算符 26
3.7 复合表达式 26
3.8 本章小结 27
3.9 思考练习 27
第4章 流程控制语句 28
4.1 循环语句 28
4.1.1 for-in语句 28
4.1.2 while语句 29
4.1.3 repeate-while语句 30
4.2 分支语句 30
4.2.1 if语句 30
4.2.2 switch语句 32
4.2.3 在switch语句中使用范围
匹配 34
4.2.4 在switch语句中比较元
组型 34
4.3 控制转移语句 35
4.3.1 continue语句 35
4.3.2 break语句 37
4.3.3 fallthrough语句 38
4.4 流程嵌套 38
4.5 本章小结 39
4.6 思考练习 39
第5章 字符和字符串 40
5.1 Swift语言中的字符 40
5.2 字符串常见操作 41
5.2.1 字符串长度 41
5.2.2 字符串比较 41
5.2.3 字符串前缀和后缀判断 42
5.2.4 字符串的字符大小写转换 42
5.2.5 字符串插入 43
5.2.6 字符串添加 43
5.2.7 字符串删除 43
5.2.8 字符串提取 44
5.2.9 字符串替换 45
5.2.10 遍历字符串 45
5.3 String与NSString关系 46
5.4 本章小结 47
5.5 思考练习 47
第6章 Collection类型 48
6.1 数组 48
6.1.1 数组的创建 48
6.1.2 数组的访问 49
6.1.3 数组的编辑 51
6.1.4 数组的复制 52
6.1.5 Array与NSArray的
关系 53
6.2 字典 53
6.2.1 字典的创建 53
6.2.2 字典的访问 54
6.2.3 字典的编辑 55
6.2.4 字典的复制 57
6.2.5 Dictionary与NSDictionary
的关系 57
6.3 集合 58
6.3.1 集合的创建 58
6.3.2 集合的访问 58
6.3.3 集合的编辑 59
6.3.4 集合的关系 60
6.4 本章小结 61
6.5 思考练习 61
第7章 函数和闭包 62
7.1 函数的声明和调用 62
7.2 函数参数 63
7.2.1 无参函数 63
7.2.2 含参函数 63
7.2.3 函数参数标签和参数名 63
7.2.4 参数默认值 64
7.2.5 可变参数 65
7.2.6 参数的传递引用 65
7.3 函数返回值 66
7.3.1 无返回值函数 66
7.3.2 有返回值函数 67
7.4 函数类型 68
7.4.1 作为参数类型使用 68
7.4.2 作为返回值类型使用 69
7.5 内嵌函数 69
7.6 泛型和泛型函数 70
7.6.1 泛型要解决的问题 70
7.6.2 泛型函数 70
7.7 闭包的概念 71
7.8 闭包表达式 73
7.8.1 类型推断简化 73
7.8.2 省略return关键字 74
7.8.3 使用位置参数简化闭包
书写 75
7.8.4 使用闭包返回值 76
7.9 尾随闭包 76
7.10 捕获上下文的常量和变量 77
7.11 逃逸闭包 78
7.12 自动闭包 79
7.13 本章小结 80
7.14 思考练习 80
第二部分 面向对象篇 81
第8章 枚举 83
8.1 Swift的面向对象 83
8.2 枚举类型 84
8.2.1 枚举定义 84
8.2.2 枚举的方法 84
8.3 值枚举 86
8.3.1 成员值 86
8.3.2 原始值 87
8.3.3 哈希值 88
8.4 类型枚举 89
8.5 本章小结 90
8.6 思考练习 90
第9章 结构体 91
9.1 结构体的定义 91
9.2 结构体属性 91
9.2.1 实例属性 92
9.2.2 懒加载实例属性 92
9.2.3 计算属性 93
9.2.4 静态属性 94
9.3 结构体的属性监听 95
9.4 结构体的方法 96
9.4.1 实例方法 97
9.4.2 静态方法 97
9.5 下标 98
9.6 结构体的构造器 99
9.6.1 默认构造器 99
9.6.2 构造器参数 100
9.6.3 指定构造器和便利构造器 101
9.7 结构体嵌套 102
9.8 可选链 102
9.9 扩展 104
9.9.1 声明扩展 105
9.9.2 扩展计算属性 105
9.9.3 扩展方法 106
9.9.4 扩展构造器 107
9.10 本章小结 107
9.11 思考练习 107
第10章 类 108
10.1 类和结构体的区别 108
10.2 类的属性 110
10.2.1 实例属性 111
10.2.2 懒加载实例属性 111
10.2.3 计算属性 111
10.2.4 类的属性监听 112
10.2.5 类的静态属性 113
10.3 类的方法 113
10.3.1 类的实例方法 114
10.3.2 类的静态方法 114
10.4 类的继承和多态 115
10.4.1 类的继承 115
10.4.2 类的重写 116
10.4.3 类的重载 119
10.5 类的构造和析构 120
10.5.1 类的构造 120
10.5.2 类的析构 123
10.6 类的类型检测和转换 123
10.6.1 类型检测 124
10.6.2 类型转换 125
10.6.3 Any和AnyObject转换 126
10.7 类对象的内存管理 127
10.7.1 内存管理概述 127
10.7.2 强引用循环 128
10.7.3 打破强引用循环 129
10.7.4 闭包中的强引用循环 132
10.8 本章小结 134
10.9 思考练习 134
第11章 协议与抽象类型 135
11.1 协议 135
11.1.1 声明和遵守协议 135
11.1.2 协议属性 136
11.1.3 协议方法 137
11.2 抽象类型 139
11.3 扩展中声明协议 141
11.4 本章小结 142
11.5 思考练习 142
第三部分 错误处理篇 143
第12章 错误处理 145
12.1 错误抛出 145
12.2 错误的捕捉和处理 147
12.3 错误与可选值 148
12.4 拦截错误传导 148
12.5 收尾操作 148
12.6 本章小结 149
12.7 思考练习 149
第四部分 Swift与Objective-C对比篇 151
第13章 Swift与Objective-C 153
13.1 Swift与Objective-C对比 153
13.2 Swift工程中调用Objective-C 153
13.3 本章小结 155
13.4 思考练习 155
第14章 链式编程 156
14.1 链式编程 156
14.2 链式编程的应用 157
14.3 本章小结 159
14.4 思考练习 159
第五部分 项目实战篇 161
第15章 Swift项目实战——汽车商城 163
15.1 项目需求分析 163
15.1.1 项目功能需求 163
15.1.2 项目界面设计 164
15.2 项目架构搭建 165
15.2.1 架构设计 165
15.2.2 创建项目 165
15.2.3 搭建架构 167
15.3 业务逻辑实现 168
15.3.1 启动页模块 169
15.3.2 首页模块 171
15.3.3 地图模块 181
15.3.4 发现模块 184
15.4 本章小结 195
15.5 思考练习 196
第16章 iOS应用开发的测试 197
16.1 iOS测试框架 197
16.2 XCTest测试框架 197
16.2.1 添加XCTest测试框架 197
16.2.2 XCTest测试方法 200
16.3 使用XCTest进行测试 201
16.3.1 常用测试工具 201
16.3.2 单元测试 202
16.3.3 UI测试 203
16.4 本章小结 204
16.5 思考练习 204
附录 205
· · · · · · (
收起)