第1篇基础篇
第1章预备知识/3

1.1Xcode特性3
1.2Xcode的使用4
1.3playground介绍7

第2章数据类型/10

2.1常量和变量10
2.2整型和浮点型16
2.3布尔型19
目录

2.4元组型20
2.5可选型22
本章知识点29
参考代码30

第3章运算符/35

3.1赋值运算符35
3.2算术运算符36
3.3关系运算符37
3.4逻辑运算符38
3.5三元运算符40
3.6区间运算符41
本章知识点41

第4章字符串/42

4.1字符串的定义42
4.2字符串的操作44
本章知识点50
参考代码50

第5章集合/54

5.1数组54
5.2集合60
5.3字典63
本章知识点66
参考代码67

第6章控制流/72

6.1for循环72
6.2while循环73
6.3if条件语句74
6.4switch条件语句75
6.5控制转移语句78
本章知识点80
参考代码80

第7章函数/84

7.1函数的定义和调用方法84
7.2函数形参86
7.3函数类型89
7.4嵌套函数92
本章知识点93
参考代码93

第8章闭包/98

8.1闭包表达式98
8.2闭包的应用103
本章知识点106
参考代码107
第2篇高级篇
第9章枚举型/111

9.1枚举型的定义111
9.2关联值114
本章知识点117
参考代码118

第10章结构体与类/120

10.1基本概念120
10.2值类型与引用类型123
本章知识点126
参考代码126

第11章属性/128

11.1存储属性128
11.2计算属性130
11.3属性观察器133
11.4类型属性135
本章知识点136
参考代码136

第12章方法/139

12.1实例方法139
12.2类型方法141
12.3可变方法142
12.4下标方法142
本章知识点145
参考代码145

第13章类/150

13.1继承性150
13.2重载155
13.3类的构造158
13.4类的析构166
本章知识点168
参考代码168

第14章协议/175

14.1协议的使用175
14.2协议的继承性181
本章知识点183
参考代码183

第15章泛型/189

15.1泛型函数189
15.2泛型类191
本章知识点192
参考代码192
第3篇深入篇
第16章异常/197

16.1定义异常197
16.2抛出异常197
16.3处理异常199
本章知识点200
参考代码201

第17章可选链/202

17.1可选链的定义202
17.2可选链的使用203
本章知识点207
参考代码207

第18章访问控制/210

18.1访问级别210
18.2实例211
本章知识点214
参考代码214

第19章类型操作符/216

19.1类型检查217
19.2类型转换218
本章知识点219

第20章扩展/220

20.1扩展计算型属性220
20.2扩展构造器221
20.3扩展方法222
20.4扩展下标222
本章知识点223

第21章内存管理/224

21.1工作原理224
21.2强引用循环225
21.3闭包中的强引用循环230
本章知识点232

第22章高级运算符/233

22.1位运算符233
22.2溢出运算符235
22.3运算符函数235
本章知识点238
第4篇应用篇
第23章苹果应用/241

23.1一个简单的应用241
23.2MVC架构250
23.3应用运行状态252

第24章计算器/254

24.1界面设计254
24.2动作处理259
24.3运算逻辑266
24.4小结276

第25章手游2048/277

25.1模型层278
25.2视图层288
25.3控制层296
25.4小结305第26章编程练习及参考答案/306

【练习1】Fibonacci数列306
【练习2】求质数307
【练习3】求水仙花数309
【练习4】统计字符串中的各类字符个数310
【练习5】给定项数和数的和311
【练习6】自由落体反弹问题312
【练习7】求无重复的三位数312
【练习8】阶梯奖金计算314
【练习9】求完全平方数315
【练习10】求一年中的第几天316
【练习11】3个数比大小317
【练习12】打印九九乘法表319
【练习13】猴子吃桃问题320
【练习14】求分数数列的和321
【练习15】求n的阶乘的和322
【练习16】用递归法求阶乘322
【练习17】倒推年龄323
【练习18】逆序打印一个整数324
【练习19】回文问题325
【练习20】整数排序327
【练习21】求5×5矩阵对角线之和328
【练习22】折半查找329
【练习23】围圈报数330
【练习24】求分数的和332
【练习25】字符串排序333
【练习26】猴子分桃问题334
【练习27】考试成绩统计336
【练习28】子串出现的次数338
【练习29】数字加密问题339
【练习30】被9整除问题340