《Swift编程权威指南 第2版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:马修·马赛厄斯
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2017
  • ISBN:9787115457462
  • 页数:370 页
图书介绍:本书系统讲解了在iOS平台上,使用苹果的Swift语言开发iPhone和iPad应用的基本概念和编程技巧。主要围绕使用Swift语言进行iOS开发,结合大量代码示例,教会读者利用高级iOS特性开发真实的应用。

第一部分 起步 2

第1章 起步 2

1.1 Xcode起步 2

1.2尝试playground 4

1.3修改变量并打印信息到控制台 5

1.4继续前进 7

1.5青铜挑战练习 7

第2章 类型、常量和变量 8

2.1类型 8

2.2常量与变量 9

2.3字符串插值 11

2.4青铜挑战练习 12

第二部分 基础知识 14

第3章 条件语句 14

3.1 if/else 14

3.2三目运算符 16

3.3嵌套的i f 17

3.4 else if 18

3.5青铜挑战练习 19

第4章数 20

4.1整数 20

4.2创建整数实例 22

4.3整数操作符 23

4.3.1整数除法 24

4.3.2快捷操作符 24

4.3.3溢出操作符 25

4.4转换整数类型 26

4.5浮点数 27

4.6青铜挑战练习 28

第5章switch语句 29

5.1什么是switch 29

5.2开始使用switch 30

5.2.1区间 32

5.2.2值绑定 33

5.2.3 where子句 34

5.2.4元组和模式匹配 35

5.3 switch与if/else 38

5.4青铜挑战练习 39

5.5白银挑战练习 40

第6章 循环 41

6.1 for-in循环 41

6.2类型推断概述 45

6.3 while循环 45

6.4 repeat-while循环 46

6.5重提控制转移语句 47

6.6白银挑战练习 50

第7章 字符串 51

7.1使用字符串 51

7.2 Unicode 53

7.2.1 Unicode标量 53

7.2.2标准等价 55

7.3青铜挑战练习 57

7.4白银挑战练习 57

第8章 可空类型 58

8.1可空类型 58

8.2可空实例绑定 60

8.3隐式展开可空类型 62

8.4可空链式调用 63

8.5原地修改可空实例 64

8.6 nil合并运算符 65

8.7青铜挑战练习 66

8.8白银挑战练习 66

第三部分 容器和函数 68

第9章 数组 68

9.1创建数组 68

9.2访问和修改数组 69

9.3数组相等 75

9.4不可变数组 76

9.5文档 77

9.6青铜挑战练习 78

9.7白银挑战练习 78

9.8黄金挑战练习 78

第10章 字典 79

10.1创建字典 79

10.2填充字典 80

10.3访问和修改字典 80

10.4增加和删除值 82

10.5循环 84

10.6不可变字典 85

10.7把字典转换为数组 85

10.8白银挑战练习 86

10.9黄金挑战练习 86

第11章 集合 87

11.1什么是集合 87

11.2创建集合 87

11.3运用集合 89

11.3.1并集 89

11.3.2交集 90

11.3.3不相交 91

11.4青铜挑战练习 92

11.5白银挑战练习 92

第12章 函数 93

12.1一个基本的函数 93

12.2函数参数 94

12.2.1参数名字 95

12.2.2变长参数 96

12.2.3默认参数值 97

12.2.4 in-out参数 98

12.3从函数返回 99

12.4嵌套函数和作用域 100

12.5多个返回值 101

12.6可空返回值类型 102

12.7提前退出函数 103

12.8函数类型 103

12.9青铜挑战练习 104

12.10白银挑战练习 104

12.11深入学习:Void 105

第13章 闭包 106

13.1闭包的语法 106

13.2闭包表达式语法 107

13.3函数作为返回值 110

13.4函数作为参数 111

13.5闭包能捕获变量 113

13.6闭包是引用类型 115

13.7函数式编程 116

13.8青铜挑战练习 119

13.9青铜挑战练习 119

13.10黄金挑战练习 119

第四部分 枚举、结构体和类 122

第14章 枚举 122

14.1基本枚举 122

14.2原始值枚举 125

14.3方法 128

14.4关联值 131

14.5递归枚举 133

14.6青铜挑战练习 136

14.7白银挑战练习 136

第15章 结构体和类 137

15.1新工程 137

15.2结构体 141

15.3实例方法 144

15.4 mutating方法 145

15.5类 145

15.5.1 Monster类 146

15.5.2继承 147

15.6应该用哪种类型 150

15.7青铜挑战练习 150

15.8白银挑战练习 150

15.9深入学习:类型方法 151

15.10深入学习:mutating方法 152

第16章 属性 158

16.1基本的存储属性 158

16.2嵌套类型 159

16.3惰性存储属性 160

16.4计算属性 162

16.5属性观察者 164

16.6类型属性 165

16.7访问控制 168

16.8青铜挑战练习 171

16.9白银挑战练习 171

16.10黄金挑战练习 171

第17章 初始化 172

17.1初始化方法语法 172

17.2结构体初始化 172

17.2.1结构体的默认初始化方法 173

17.2.2结构体的自定义初始化方法 174

17.3类初始化 177

17.3.1类的默认初始化方法 177

17.3.2初始化和类继承 177

17.3.3类的必需初始化方法 183

17.3.4反初始化 184

17.4可失败的初始化方法 185

17.5掌握初始化 188

17.6白银挑战练习 188

17.7黄金挑战练习 188

17.8深入学习:初始化方法参数 189

第18章 值类型与引用类型 190

18.1值语义 190

18.2引用语义 192

18.3值类型常量和引用类型常量 194

18.4配合使用值类型和引用类型 196

18.5复制 197

18.6相等与同一 199

18.7我应该用什么 200

18.8深入学习:写时复制 201

第五部分Swift高级编程 210

第19章 协议 210

19.1格式化表格数据 210

19.2协议 214

19.3符合协议 217

19.4协议继承 218

19.5协议组合 219

19.6 mutating方法 220

19.7白银挑战练习 221

19.8黄金挑战练习 221

第20章 错误处理 222

20.1错误分类 222

20.2对输入字符串做词法分析 223

20.3捕获错误 231

20.4解析符号数组 232

20.5用鸵鸟政策处理错误 236

20.6 Swift的错误处理哲学 239

20.7青铜挑战练习 240

20.8白银挑战练习 240

20.9黄金挑战练习 241

第21章 扩展 242

21.1扩展已有类型 242

21.2扩展自己的类型 244

21.2.1用扩展使类型符合协议 244

21.2.2用扩展添加初始化方法 245

21.2.3嵌套类型和扩展 246

21.2.4扩展中的函数 247

21.3青铜挑战练习 248

21.4青铜挑战练习 248

21.5白银挑战练习 248

第22章 泛型 249

22.1泛型数据结构 249

22.2泛型函数和方法 251

22.3类型约束 253

22.4关联类型协议 254

22.5类型约束中的where子句 257

22.6青铜挑战练习 259

22.7白银挑战练习 259

22.8黄金挑战练习 259

22.9深入学习:理解可空类型 260

22.10深入学习:参数多态 260

第23章 协议扩展 262

23.1为锻炼建模 262

23.2扩展Exercise 264

23.3带where子句的协议扩展 265

23.4用协议扩展提供默认实现 266

23.5关于命名:一个警世故事 268

23.6青铜挑战练习 270

23.7黄金挑战练习 270

第24章 内存管理和ARC 271

24.1内存分配 271

24.2循环强引用 272

24.3用weak打破循环强引用 276

24.4闭包中的循环引用 277

24.5逃逸闭包和非逃逸闭包 281

24.6青铜挑战练习 283

24.7白银挑战练习 283

24.8深入学习:我能获取实例的引用计数吗 283

第25章Equatable和Comparable 284

25.1符合Equatable 284

25.1.1插曲:中缀运算符 286

25.1.2方法“买一赠一” 287

25.2符合Comparable 287

25.3继承Comparable 289

25.4青铜挑战练习 290

25.5黄金挑战练习 290

25.6白金挑战练习 291

25.7深入学习:自定义运算符 291

第六部分 事件驱动的应用 296

第26章 第一个Cocoa应用 296

26.1开始创建VocalTextEdit 297

26.2模型-视图-控制器 298

26.3设置视图控制器 299

26.4在Interface Builder中设置视图 301

26.4.1添加朗读和停止按钮 302

26.4.2添加文本视图 303

26.4.3自动布局 305

26.5连接 307

26.5.1为VocalTextEdit的按钮设置目标-动作对 307

26.5.2连接文本视图出口 308

26.6让VocalTextEdit“说话” 310

26.7保存和加载文档 311

26.7.1类型转换 313

26.7.2保存文档 314

26.7.3加载文档 316

26.7.4按照MVC模式整理代码 318

26.7.5现实世界中的Swift 320

26.8白银挑战练习 320

26.9黄金挑战练习 320

第27章 第一个iOS应用 321

27.1开始创建iTahDoodle 322

27.2布局用户界面 323

27.3为待办事项列表建模 331

27.4设置UITableView 335

27.5保存和加载TodoList 337

27.5.1保存TodoList 337

27.5.2加载TodoList 339

27.6青铜挑战练习 341

27.7白银挑战练习 341

27.8黄金挑战练习 341

第28章 互操作 342

28.1一个Objective-C工程 342

28.2在Objective-C工程中加入Swift 351

28.3添加Objective-C类 361

28.4白银挑战练习 368

28.5黄金挑战练习 368

第29章 结语 369

29.1接下来学习什么 369

29.2插个广告 369

29.3邀请 369