本书全面介绍了Swift 4中的所有重要特色,但又摒弃了部分不适合初学者的冷僻知识点,使第一次接触Swift的读者能够抓住重点,掌握精髓。除了在Swift语言方面尽最大可能做到面面俱到,本书通过预备知识部分,帮助读者迅速掌握Xcode的基本功能,熟练运用playground编写代码,为配合后面章节中编写小实例打下必要的基础。介绍完Swift语言,紧随其后的是由浅入深、逐步分解问题的一个应用实例,帮助读者运用已学的Swift语言解决实际问题,使读者体会到Swift语言在实际iOS App开发中扮演的角色。最后部分通过30个比较经典的编程练习帮助读者巩固已学的Swift语言知识。 本书共分为4篇。 第1篇为基础篇,含8章,介绍了预备知识和Swift语法中的基础内容。其中,第1章介绍读者在阅读本书Swift语言知识前必须掌握的基础内容,内容主要包括Xcode特性、Xcode的使用以及playground介绍。playground将是Swift语言实践的主要工具。第2章介绍基本的数据类型,包括常量和变量、整型和浮点型、布尔型、元组型、可选型等内容。第3章介绍各种常用的运算符,包括赋值运算符、算术运算符、关系运算符、逻辑运算符、三元运算符、区间运算符。第4章介绍字符串的相关知识,包括字符串的定义、字符串的操作等。第5章介绍几种集合类型的定义和操作,包括数组、集合和字典。第6章介绍几种控制流的语法和使用方法,包括for循环、while循环、if条件语句、switch条件语句及控制转移语句。第7章主要介绍函数的相关知识,包括函数的定义和调用方法、函数形参、函数类型、嵌套函数。第8章主要介绍闭包的相关知识,包括闭包表达式和闭包的应用。 第2篇为高级篇,含7章,介绍了Swift语法中的面向对象的基础知识。其中,第9章介绍枚举型,包括枚举型的定义、枚举型的关联值及原始值的定义和用法。第10章介绍结构体与类的定义,比较了两者的共同点和不同点,以及各自的应用场景。第11章介绍属性的相关知识,包括存储属性、计算属性、属性观察器以及类型属性。第12章介绍方法的相关知识,重点介绍实例方法和类型方法,同时也介绍了比较特殊的下标方法。第13章介绍类,先介绍了基类和子类的概念,然后介绍了如何进行重载。第14章介绍了协议,包括协议的使用、协议的继承性。第15章介绍了泛型的相关知识,包括泛型函数、泛型类。 第3篇为深入篇,含7章,介绍Swift语法中的面向对象的高级知识。其中,第16章介绍异常处理的相关知识,包括异常的定义及如何进行异常处理。第17章介绍了可选链,包括强制拆包的概念,以及可选链的应用场景。第18章介绍访问控制的相关定义和应用场景。第19章介绍类型操作符的相关知识,包括类型检查和类型转换。第20章介绍扩展的概念,包括扩展计算型属性、扩展构造器、扩展方法及扩展下标。第21章介绍内存管理的相关知识,包括内存管理的工作原理、强引用循环的概念及消除的方法、闭包中的强引用循环等。第22章介绍高级运算符,包括位运算符、溢出运算符及运算符函数。 第4篇为应用篇,含4章,通过实现两个完整的苹果应用,在实际工程项目中综合运用前面学习的Swift语言知识。第23章以计算器应用为例简要介绍了苹果应用的相关知识,包括如何建立一个简单的应用、iOS App的MVC架构以及应用的运行状态的切换。第24章介绍了如何编程实现计算器应用,包括界面设计、动作处理和运算逻辑等部分。第25章介绍如何基于MVC架构实现手游2048的过程,分别从模型层、视图层和控制层分析和实现。第26章为Swift语言的编程练习及参考答案,通过30个比较经典的编程练习题,讲解每个题的编程思路,并给出代码、相关代码说明及系统运行结果。 由于编者水平有限,有不少考虑不周的地方和不足之处,敬请使用本书的老师、同学及广大读者批评指正。 编者 2019年7月