第一部分 基础知识 2
第1章 Swift简介 2
1.1 革命性的改良 2
1.2 准备工作 3
1.2.1 专业工具 3
1.2.2 与Swift交互 3
1.3 准备出发 4
1.4 开始探索Swift 6
1.4.1 帮助和退出 6
1.4.2 Hello World 7
1.5 声明的威力 7
1.6 常量 9
1.7 类型 10
1.7.1 检查上限和下限 11
1.7.2 类型转换 11
1.7.3 显式地声明类型 13
1.8 字符串 13
1.8.1 字符串拼接 14
1.8.2 Character类型 14
1.9 数学运算符 15
1.9.1 表达式 15
1.9.2 混用不同的数值类型 16
1.9.3 数值表示 16
1.10 布尔类型 17
1.11 轻松显示 18
1.12 使用类型别名 19
1.13 使用元组将数据编组 20
1.14 可选类型 21
1.15 小结 22
第2章 使用集合 23
2.1 糖果罐 23
2.1.1 数组中所有元素的类型都必须相同 26
2.1.2 增长数组 26
2.1.3 替换和删除值 27
2.1.4 将值插入到指定位置 28
2.1.5 合并数组 29
2.2 字典 30
2.2.1 查找条目 31
2.2.2 添加条目 32
2.2.3 更新条目 33
2.2.4 删除条目 33
2.3 数组的数组 34
2.4 创建空数组和空字典 36
2.4.1 空数组 36
2.4.2 空字典 37
2.5 迭代集合 37
2.5.1 迭代数组 38
2.5.2 迭代字典 39
2.6 小结 40
第3章 流程控制 41
3.1 for循环 41
3.1.1 计数 41
3.1.2 包含还是不包含结束数字 42
3.1.3 老式for循环 43
3.1.4 简写 44
3.2 游乐场 45
3.3 决策 48
3.3.1 if语句 49
3.3.2 检查多个条件 52
3.3.3 switch语句 53
3.3.4 while循环 57
3.3.5 检查代码 59
3.3.6 提早结束循环 62
3.4 小结 62
第4章 编写函数和闭包 63
4.1 函数 63
4.1.1 使用Swift编写函数 64
4.1.2 执行函数 65
4.1.3 参数并非只能是数字 66
4.1.4 可变参数 67
4.1.5 函数是一级对象 70
4.1.6 从函数返回函数 71
4.1.7 嵌套函数 74
4.1.8 默认参数 76
4.1.9 函数名包含哪些内容 77
4.1.10 清晰程度 78
4.1.11 用不用参数名 79
4.1.12 变量参数 79
4.1.13 inout参数 81
4.2 闭包 82
4.3 小结 84
4.4 类 84
第5章 使用类和结构组织代码 85
5.1 对象无处不在 85
5.2 Swift对象是使用类定义的 86
5.2.1 定义类 86
5.2.2 创建对象 88
5.2.3 开门和关门 88
5.2.4 锁门和开锁 89
5.2.5 查看属性 92
5.2.6 门应是各式各样的 92
5.2.7 修改颜色 94
5.3 继承 95
5.3.1 创建基类 96
5.3.2 创建子类 98
5.3.3 实例化子类 100
5.3.4 便利初始化方法 104
5.4 枚举 106
5.5 结构 109
5.6 值类型和引用类型 110
5.7 小结 112
第6章 使用协议和扩展进行规范化 113
6.1 遵循协议 113
6.1.1 类还是协议 113
6.1.2 协议并非只能定义方法 115
6.1.3 遵循多个协议 117
6.1.4 协议也可继承 118
6.1.5 委托 119
6.2 扩展 122
6.2.1 扩展基本类型 123
6.2.2 在扩展中使用闭包 127
6.3 小结 129
第二部分 使用Swift开发软件 132
第7章 使用Xcode 132
7.1 Xcode简史 132
7.2 创建第一个Swift项目 133
7.3 Xcode界面 135
7.3.1 与Xcode窗口交互 136
7.3.2 运行应用程序 138
7.4 开发应用程序 139
7.4.1 腾出空间 139
7.4.2 创建界面 141
7.4.3 美化 143
7.4.4 编写代码 145
7.4.5 建立连接 149
7.5 小结 151
第8章 改进应用程序 152
8.1 细节很重要 152
8.1.1 显示金额 152
8.1.2 再谈可选类型 154
8.1.3 可选类型拆封 155
8.1.4 美化 155
8.1.5 另一种格式设置方法 156
8.2 计算复利 160
8.2.1 连接起来 162
8.2.2 测试 165
8.3 调试 165
8.3.1 bug在哪里 165
8.3.2 断点 166
8.3.3 复杂的复利计算 169
8.4 测试的价值 170
8.4.1 单元测试 170
8.4.2 编写测试 171
8.4.3 如果测试未通过 173
8.4.4 始终运行的测试 174
8.5 小结 175
第9章 Swift移动开发 176
9.1 移动设备和台式机 176
9.2 挑战记忆力 176
9.2.1 考虑玩法 177
9.2.2 设计UI 177
9.3 创建项目 178
9.4 创建用户界面 180
9.4.1 创建按钮 181
9.4.2 在模拟器中运行 183
9.4.3 设置约束 184
9.5 MVC 187
9.6 编写游戏代码 187
9.6.1 类 190
9.6.2 枚举 191
9.6.3 视图对象 191
9.6.4 模型对象 191
9.6.5 可重写的方法 192
9.6.6 游戏的方法 193
9.6.7 处理输赢 196
9.7 回到故事板 198
9.8 开玩 200
第10章 成为专家 201
10.1 Swift内存管理 201
10.1.1 值和引用 201
10.1.2 引用计数 202
10.1.3 引用循环 203
10.1.4 演示引用循环 203
10.1.5 编写测试代码 204
10.1.6 断开引用循环 206
10.1.7 闭包中的引用循环 207
10.1.8 感恩 209
10.2 逻辑运算符 209
10.2.1 逻辑非 209
10.2.2 逻辑与 210
10.2.3 逻辑或 210
10.3 泛型 211
10.4 运算符重载 212
10.5 相等和相同 214
10.6 错误处理 216
10.6.1 引发错误 216
10.6.2 捕获错误 217
10.7 Swift脚本编程 219
10.7.1 创建脚本 219
10.7.2 设置权限 221
10.7.3 执行脚本 221
10.7.4 工作原理 222
10.8 获取帮助 223
10.9 小结 225
第11章 高山滑雪 226
11.1 游戏开发技术 226
11.1.1 GameKit 226
11.1.2 SpriteKit 227
11.2 始于构思 227
11.2.1 高山滑雪 227
11.2.2 社交功能 227
11.3 出发 227
11.3.1 怎么玩 228
11.3.2 玩一玩 228
11.4 研究这个项目的组织结构 231
11.4.1 类 231
11.4.2 素材 232
11.4.3 场景 232
11.5 探索源代码 232
11.5.1 场景Home 232
11.5.2 场景Game 235
11.5.3 游戏视图控制器 239
11.5.4 全面了解 241
11.6 独闯江湖 241
11.6.1 研究苹果公司提供的框架 241
11.6.2 加入苹果开发者计划 242
11.6.3 成为社区的一分子 242
11.6.4 活到老学到老 242
11.6.5 一路平安 242