书籍详情
《Swift应用开发教程》[21M]百度网盘|亲测有效|pdf下载
  • Swift应用开发教程

  • 出版社:清华大学出版社京东自营官方旗舰店
  • 出版时间:2017-01
  • 热度:11462
  • 上架时间:2024-06-30 09:38:03
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

编辑推荐

  《Swift应用开发教程》全面介绍了Swift 2.0中的所有重要特色,但舍弃了部分不适合初学者的冷僻知识点,使*一次接触Swift的读者能够迅速抓住重点,掌握精髓。除了在Swift语言方面尽*大可能做到全面系统以外,本书通过预备知识部分帮助读者迅速掌握Xcode基本功能和熟练运用playground编写代码,为配合后面编写小的实例打下必要的基础。介绍完Swift语言内容,紧随其后的是由浅入深、逐步分解问题的一个应用实例,帮助读者运用已学的Swift语言知识来解决实际问题,使读者体会到Swift语言在实际iOS App开发中的作用。*后通过30个经典的编程练习来帮助读者巩固已学的Swift语言知识。


内容简介

  《Swift应用开发教程》基于新的苹果官方Swift 2.0语法规范,所有的程序均在Xcode 7中开发完成。全书分为6个部分: 预备知识、语法基础、面向对象编程基础、面向对象高级编程、应用实例、编程练习及参考答案。

  《Swift应用开发教程》既可作为计算机专业和非计算机专业本科生移动开发课程的配套教材,也可作为iOS开发工程师和iOS开发爱好者的参考书籍。


内页插图

目录

预备知识/1

0.1Xcode特性1

0.2Xcode使用2

0.3playground4


第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.1for循环40

5.2while循环41

5.3if条件语句42

5.4switch条件语句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.2MVC架构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


精彩书摘

  第5章

  控制流

  本章主要介绍Swift中的各种循环控制语句,包括for语句、while及repeatwhile语句、if条件语句、switch条件语句及控制流中的跳转语句。

  5.1for循环

  在前面的章节已经接触到forin循环了,这里将进行深入系统的讨论。for循环是指按照指定次数重复执行一系列语句的操作。for循环有两种形式,即forin循环和for条件递增循环。

  forin循环主要用来遍历一个特定范围内的所有元素,例如一个集合、一个数字范围、一个字符串或者一个数组。

  图5.1forin遍历闭区间

  如图5.1所示,遍历了1~6的闭区间里的所有整数,这里的整型变量i不需要显式声明,它是在循环的声明语句中被隐式声明的。每次循环的时候,i被赋值为1~6的数,在循环体内可以被引用。

  当不需要知道每次循环时变量的值时,可以使用下画线“_”来代替变量名。如图5.2所示,这里需要注意的是,当用下画线来代替变量后,实际上forin循环已经变成了重复一定的次数执行循环体内的语句,而不需要循环范围中遍历的值参与循环体的执行。

  Chapter 5第5章控制流

  图5.2下画线代替变量名

  forin循环遍历数组、字典、集合的实例可参考前面相关的章节,这里不再作重复介绍。

  for条件递增循环主要用来重复执行一系列语句直到特定条件达成,一般的做法是: 每次循环后增加计数器的值,当计数器的值达到特定值后结束循环。

  for条件递增循环的格式为forinitialization;condition;increment {

  statements

  }该循环语句的执行过程是: 第一步进行条件控制变量的初始化,即执行initialization部分的语句。第二步,执行条件判断语句condition,结果为布尔值。当结果为false时,循环结束,继续执行for循环以外的后续语句;当结果为true时,执行循环体内的语句statements。第三步,执行递增语句,即increment语句,完成后跳回第二步继续执行。实例如图5.3所示。

  图5.3for条件递增循环实例

  5.2while循环

  while循环就是重复执行一系列语句,直到条件语句值为false。while循环在循环执行一系列语句前先进行条件语句的判断,若为false则结束循环,若为true则继续执行循环体内语句。Swift还提供了while循环的一种变体,即repeatwhile循环,它首先执行循环体内的一系列语句,然后进行条件语句的判断,若为false则结束循环,若为true则继续执行循环体内的语句。

  while循环的格式为while condition {

  statements

  }repeatwhile循环的格式为repeat {

  statements

  } while condition如图5.4所示,while循环和repeatwhile循环的判断条件相同,都是i<5,执行的结果也一致。

  图5.4while循环和repeatwhile循环

  5.3if条件语句

  if条件语句在前面的章节已经多次使用了,相信读者已经非常熟悉了。if条件语句的格式为ifcondition{

  statements

  } else {

  statements

  }其中,else语句还可以继续嵌套新的ifelse语句,嵌套的数量没有限制。例如: ifcondition1{

  statements

  } else if condition2{

  statements

  } else {

  statements

  }嵌套的if条件语句的实例如图5.5所示,其中定义了一个字符串变量weather,用来保存当前的季节信息,赋初值为autumn。通过层层嵌套ifelse语句,分别判断weather为四季中的哪一个,并打印相应的季节提示信息。

  图5.5嵌套的if条件语句

  5.4switch条件语句

  switch条件语句将一个值与若干个可能匹配的模式进行比较。执行第一个匹配成功的模式所对应的代码。图5.6中的ifelse嵌套语句在情况比较多的时候可以用switch语句来替代,在形式上会简化很多,可读性也有很大提高。

  switch语句的格式如下: switchsomeValue {

  casevalue1:statementsFor1

  casevalue2, value3:statementsFor23

  default:statementsForDefault

  }图5.6switch条件语句

  switch语句中包含了多个case,每个case对应一个匹配的条件或模式,也对应一个特定的执行语句。这里需要注意的是,switch语句中所列出的各种匹配模式必须是完备的,也就是说各种case情况必须包含someValue的所有可能值。当只想对部分特定情况进行比较和处理时,可以用default语句来处理其他没有出现在case中的可能情况(或值)。需要特别注意的是,switch语句在执行过程中,当第一次与某个case条件匹配,执行该case中对应的语句后,就直接跳出并执行switch块的后续语句,而不会继续与其他case条件进行比较。这一点是与C语言的差别。在C语言中,会显式地使用break跳出switch块。

  如图5.6所示,首先定义了一个枚举类型month,包括12个月份的英文单词。然后定了一个month类型的变量curMonth,表示当前的月份,然后赋值为month.February,表示当前月份为2月。switch语句对curMonth进行条件匹配,分别列出了4个匹配值。第一个条件为month.January,第二个条件为month.February,第三个条件为3个值: month.April、month.May、month.June。只要和其中一个值相等即匹配成功。第四个条件为默认值,如果和前面的3个条件都不匹配,则自动执行默认条件相应的语句。

  switch语句中case部分的条件也可以是一个范围。如图5.7所示,将上面的例子修改一下,用整型来表示月份。case语句分别对1~3月和4~6月进行比较。

  图5.7switch语句对整型数值范围进行值的匹配

  switch语句也可以对元组进行值的匹配。如图5.8所示,classInfo是一个课程信息的元组,包括开课年份和课程名称两个信息。通过switch语句对元组classInfo中的信息进行比较,根据不同情况,打印出相应的课程信息。

  图5.8switch语句对元组进行值的匹配

  switch语句中的case可以进行值绑定,即,将某个case匹配的值绑定到一个临时变量或者常量上,然后在该case的执行语句中就可以引用绑定的变量或常量了。如图5.9所示,在case中分别将开课年份和课程名称的值绑定到常量x和y上,并在case块的执行语句中引用这两个常量。

  在值绑定的基础上,case的匹配语句可以引入where语句来构造更加复杂的比较语句。如图5.10所示,where语句对特定条件进行筛选,匹配时才会执行后续语句。

  图5.9case的值绑定

  图5.10在case中引入where进行条件筛选

  5.5控制转移语句

  控制转移语句就是改变原有代码的执行顺序,实现代码的跳转。这里主要介绍两个常用的控制转移语句: continue语句、break语句。其他的控制转移语句读者可根据需要查找Swift官方文档。

  continue语句在循环语句中使用,当执行continue语句时,本次循环结束,继续下一次循环的执行。如图5.11所示,在forin循环语句中,当i=4的时候执行continue语句,直接结束本次循环,并继续下一个循环,即本次循环中的打印语句将不会执行。

  图5.11continue语句

  break语句可以用于循环语句中,也可以用于其他的控制流语句中。当执行break语句时,直接终止当前控制流,并跳到控制流以外的后续语句处继续执行。它和continue语句在循环语句中应用时的差别是,break语句终止全部后续的循环语句,而continue只是结束当次循环语句的执行。如图5.12所示,当i=4的时候,终止后续所有的循环执行语句,直接跳出循环。因此,循环只执行了3次。

  图5.12break语句

  ……

前言/序言

  前言

  本书全面介绍了Swift 2.0中的所有重要特色,但舍弃了部分不适合初学者的冷僻知识点,使第一次接触Swift的读者能够迅速抓住重点,掌握精髓。除了在Swift语言方面尽最大可能做到全面系统以外,本书通过预备知识部分帮助读者迅速掌握Xcode基本功能和熟练运用playground编写代码,为配合后面编写小的实例打下必要的基础。介绍完Swift语言内容,紧随其后的是由浅入深、逐步分解问题的一个应用实例,帮助读者运用已学的Swift语言知识来解决实际问题,使读者体会到Swift语言在实际iOS App开发中的作用。最后通过30个经典的编程练习来帮助读者巩固已学的Swift语言知识。

  全书共分为6个部分:

  第1部分为预备知识,即读者在学习Swift语言知识前必须掌握的基础内容,主要包括Xcode特性、Xcode使用方法以及playground介绍。playground是Swift语言实践的主要工具。

  第2部分为语法基础,共7章(第1章至第7章),介绍Swift语法中的基础内容。第1章介绍基本的数据类型,包括常量和变量、整型和浮点型、布尔型、元组型、可选型及异常处理等内容。第2章介绍各种常用的运算符,包括赋值运算符、算术运算符、关系运算符、逻辑运算符及其他运算符。第3章介绍字符串的相关知识,包括空字符串、字符串操作及字符串比较等。第4章介绍几种集合类型的定义和操作,包括数组、集合和字典。第5章介绍几种控制流的语法和使用方法,包括for循环、while循环、if条件语句、switch条件语句及控制转移语句。第6章主要介绍函数的相关知识,包括函数的定义和调用方法、函数的形参、函数作为一种类型来使用的方法、嵌套函数。第7章主要介绍闭包的相关知识,包括闭包表达式和尾随闭包。

  第3部分为面向对象编程基础,共7章(第8章至第14章),介绍Swift语言面向对象的基础知识。第8章介绍枚举类型,包括枚举类型的定义、枚举类型的关联值及原始值的定义和用法。第9章介绍结构体和类的定义,比较了两者的共同点和不同点,以及各自的应用场景。第10章介绍属性的相关知识,包括存储属性、计算属性、属性观察器以及类型属性。第11章介绍方法的相关知识,重点介绍实例方法和类型方法,还介绍比较特殊的方法下标。第12章介绍继承性的概念,包括基类和子类的概念以及如何进行重载。第13章介绍构造器和析构器,包括构造器的定义、自定义构造器、构造器代理以及析构器。第14章简要介绍错误处理的相关知识,包括错误的定义及如何进行错误处理。

  第4部分为面向对象高级编程,共8章(第15章至第22章),介绍Swift语言面向对象的高级知识。第15章介绍可选链,包括强制拆封的概念以及可选链的应用场景。第16章介绍访问控制的相关定义和应用场景。第17章介绍类型操作符的相关知识,包括类型检查和类型转换。第18章介绍扩展的概念,包括扩展计算型属性、扩展构造器、扩展方法及扩展下标。第19章介绍协议的相关知识,包括协议的定义和协议的继承性。第20章介绍内存管理的相关知识,包括内存管理的工作原理、强引用循环的概念及消除的方法、闭包中的强引用循环等。第21章介绍高级运算符,包括位运算符、溢出运算符及运算符函数。第22章简要介绍泛型的概念和实例。

  第5部分为应用实例,共两章,即第23章和第24章,通过一个完整的苹果应用计算器的例子,在一个简单的实际工程项目中综合运用前面学习的Swift语言知识。第23章以计算器应用为例简要介绍苹果应用的相关知识,包括如何建立一个简单的应用、iOS App的MVC架构以及应用的运行状态的切换。第24章介绍如何编程实现计算器应用,包括界面设计、动作处理和运算逻辑等部分。

  第6部分为编程练习及参考答案,给出30个经典编程练习题,讲解每一题的编程思路,并给出代码、相关代码说明及系统运行结果。

  由于编者水平有限,书中难免有考虑不周的地方和不足之处,敬请使用本书的老师、同学及广大读者批评指正。

  编者

  2016年10月

  前言