预备知识 1
0.1 Xcode特性 1
0.2 Xcode使用 2
0.3 playground 4
第1章 基本数据类型 8
1.1 常量和变量 8
1.2 整型和浮点型 12
1.3 布尔型 13
1.4 元组型 14
1.5 可选型 15
1.6 异常处理 18
第2章 运算符 20
2.1 赋值运算符 20
2.2 算术运算符 21
2.3 关系运算符 22
2.4 逻辑运算符 23
2.5 其他运算符 25
第3章 字符串 27
3.1 空字符串 27
3.2 字符串操作 28
3.3 字符串比较 29
第4章 集合 31
4.1 数组 31
4.2 集合 34
4.3 字典 36
第5章 控制流 40
5.1 for循环 40
5.2 while循环 41
5.3 if条件语句 42
5.4 switch条件语句 43
5.5 控制转移语句 46
第6章 函数 48
6.1 定义和调用 48
6.2 函数形参 49
6.3 函数类型 52
6.4 嵌套函数 54
第7章 闭包 56
7.1 闭包表达式 56
7.2 尾随闭包 58
第8章 枚举类型 60
8.1 定义 60
8.2 关联值 61
8.3 原始值 63
第9章 结构体和类 65
9.1 共同点 65
9.2 不同点 67
第10章 属性 69
10.1 存储属性 69
10.2 计算属性 71
10.3 属性观察器 72
10.4 类型属性 73
第11章 方法 75
11.1 实例方法 75
11.2 类型方法 77
11.3 下标 78
第12章 继承性 80
12.1 基类和子类 80
12.2 重载 83
第13章 构造与析构 86
13.1 构造器定义 86
13.2 自定义构造器 87
13.3 构造器代理 90
13.4 析构器 93
第14章 错误处理 96
14.1 错误定义 96
14.2 错误处理 97
第15章 可选链 100
15.1 强制拆封 100
15.2 可选链应用 101
第16章 访问控制 104
16.1 定义 104
16.2 应用 105
第17章 类型操作符 107
17.1 类型检查 108
17.2 类型转换 109
第18章 扩展 111
18.1 扩展计算型属性 112
18.2 扩展构造器 112
18.3 扩展方法 113
18.4 扩展下标 114
第19章 协议 115
19.1 定义 115
19.2 继承性 119
第20章 内存管理 121
20.1 工作原理 121
20.2 强引用循环 122
20.3 闭包中的强引用循环 127
第21章 高级运算符 129
21.1 位运算符 129
21.2 溢出运算符 131
21.3 运算符函数 132
第22章 泛型 135
第23章 苹果应用 137
23.1 一个简单的应用 137
23.2 MVC架构 147
23.3 应用运行状态 149
第24章 计算器 151
24.1 界面设计 151
24.2 动作处理 156
24.3 运算逻辑 163
24.4 小结 173
第25章 编程练习及参考答案 175
练习1:Fibonacci数列 175
练习2:求质数 177
练习3:求水仙花数 178
练习4:统计字符串中各类字符个数 179
练习5:给定项数的数字的和 180
练习6:自由落体反弹问题 182
练习7:求无重复的三位数 183
练习8:阶梯奖金计算 184
练习9:求完全平方数 186
练习10:求一年中的第几天 187
练习11:3个数比大小 188
练习12:打印九九乘法表 189
练习13:猴子吃桃问题 190
练习14:求分数数列的和 191
练习15:求1~n的阶乘的和 193
练习16:用递归法求阶乘 194
练习17:倒推年龄 195
练习18:倒序打印一个正整数 196
练习19:回文问题 197
练习20:整数排序 198
练习21:求5×5矩阵对角线之和 200
练习22:折半查找 201
练习23:围圈报数 203
练习24:求分数的和 204
练习25:字符串排序 206
练习26:猴子分桃问题 207
练习27:考试成绩统计 209
练习28:求子串出现次数 211
练习29:数字加密问题 212
练习30:被9整除问题 214