第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