图书介绍

从零开始学Swift 第2版【2025|PDF下载-Epub版本|mobi电子书|kindle百度云盘下载】

从零开始学Swift 第2版
  • 关东升著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115450920
  • 出版时间:2017
  • 标注页数:530页
  • 文件大小:90MB
  • 文件页数:544页
  • 主题词:程序语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

从零开始学Swift 第2版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 Swift语法篇2

第1章 准备起航2

1.1 本书约定2

1.1.1 示例代码约定2

1.1.2 图示约定3

1.1.3 函数和方法签名约定5

1.1.4 承接上一行代码约定6

1.1.5 代码行号约定6

1.2 Swift开发工具7

1.2.1 Xcode开发工具7

1.2.2 AppCode开发工具13

1.3 本章小结14

1.4 同步练习14

第2章 第一个Swift程序15

2.1 使用REPL15

2.1.1 启动Swift REPL15

2.1.2 使用Swift REPL17

2.2 使用Playground18

2.2.1 编程利器Playground18

2.2.2 编写HelloWorld程序19

2.3 通过Xcode创建macOS工程23

2.3.1 创建macOS工程23

2.3.2 编译和运行25

2.4 使用swiftc命令26

2.4.1 编译26

2.4.2 运行27

2.5 代码解释27

2.6 本章小结29

2.7 同步练习29

第3章 Swift语法基础30

3.1 标识符和关键字30

3.1.1 标识符30

3.1.2 关键字31

3.2 常量和变量33

3.2.1 常量33

3.2.2 变量33

3.2.3 使用var还是let34

3.3 注释35

3.4 表达式36

3.5 本章小结37

3.6 同步练习37

第4章 运算符39

4.1 算术运算符39

4.1.1 一元运算符39

4.1.2 二元运算符40

4.1.3 算术赋值运算符41

4.2 关系运算符42

4.3 逻辑运算符44

4.4 位运算符44

4.5 其他运算符47

4.6 本章小结47

4.7 同步练习48

第5章 Swift原生数据类型50

5.1 Swift数据类型50

5.2 整型50

5.3 浮点型52

5.4 数字表示方式52

5.4.1 进制数字表示53

5.4.2 指数表示53

5.4.3 其他表示53

5.5 数字类型之间的转换54

5.5.1 整型之间的转换54

5.5.2 整型与浮点型之间的转换55

5.6 布尔型55

5.7 元组类型56

5.8 可选类型57

5.8.1 可选类型概念57

5.8.2 可选类型值拆包58

5.8.3 可选绑定59

5.9 本章小结59

5.10 同步练习59

第6章 Swift简介61

6.1 字符61

6.1.1 Unicode编码61

6.1.2 转义符62

6.2 创建字符串63

6.3 可变字符串64

6.3.1 字符串拼接64

6.3.2 字符串插入、删除和替换65

6.4 字符串比较66

6.4.1 大小和相等比较66

6.4.2 前缀和后缀比较68

6.5 本章小结68

6.6 同步练习69

第7章 控制语句70

7.1 分支语句70

7.1.1 if语句70

7.1.2 switch语句72

7.1.3 guard语句74

7.2 循环语句77

7.2.1 while语句77

7.2.2 repeat-while语句78

7.2.3 for语句79

7.3 跳转语句80

7.3.1 break语句80

7.3.2 continue语句82

7.3.3 fallthrough语句83

7.4 范围与区间运算符85

7.4.1 switch中使用区间运算符86

7.4.2 for中使用区间运算符87

7.5 值绑定88

7.5.1 if中的值绑定88

7.5.2 guard中的值绑定89

7.5.3 switch中的值绑定90

7.6 where语句91

7.6.1 switch中使用where语句91

7.6.2 for中使用where语句92

7.7 本章小结92

7.8 同步练习92

第8章 Swift原生集合类型97

8.1 Swift中的数组集合97

8.1.1 数组声明和初始化98

8.1.2 可变数组99

8.1.3 数组遍历100

8.2 Swift中的字典集合101

8.2.1 字典声明与初始化102

8.2.2 可变字典103

8.2.3 字典遍历104

8.3 Swift中的Set集合105

8.3.1 Set声明和初始化106

8.3.2 可变Set集合107

8.3.3 Set集合遍历108

8.3.4 Set集合运算109

8.4 本章小结110

8.5 同步练习110

第9章 函数112

9.1 定义函数112

9.2 函数参数113

9.2.1 使用参数标签113

9.2.2 省略参数标签113

9.2.3 参数默认值114

9.2.4 可变参数114

9.2.5 值类型参数的引用传递115

9.3 函数返回值116

9.3.1 无返回值函数116

9.3.2 多返回值函数117

9.4 函数类型117

9.4.1 作为函数返回类型使用118

9.4.2 作为参数类型使用119

9.5 嵌套函数120

9.6 本章小结121

9.7 同步练习121

第10章 闭包125

10.1 回顾嵌套函数125

10.2 闭包的概念126

10.3 使用闭包表达式127

10.3.1 类型推断简化127

10.3.2 隐藏return关键字128

10.3.3 省略参数名128

10.3.4 使用闭包返回值129

10.4 使用尾随闭包130

10.5 捕获上下文中的变量和常量131

10.6 本章小结132

10.7 同步练习132

第11章 Swift语言中的面向对象特性135

11.1 面向对象概念和基本特征135

11.2 Swift中的面向对象类型135

11.3 枚举136

11.3.1 成员值136

11.3.2 原始值138

11.3.3 相关值140

11.4 结构体与类141

11.4.1 类和结构体定义141

11.4.2 再谈值类型和引用类型142

11.4.3 引用类型的比较144

11.4.4 运算符重载145

11.5 类型嵌套146

11.6 可选链147

11.6.1 可选链的概念148

11.6.2 使用问号(?)和感叹号(!)150

11.7 访问限定151

11.7.1 访问范围151

11.7.2 访问级别152

11.7.3 使用访问级别最佳实践154

11.8 选择类还是结构体最佳实践157

11.8.1 类和结构体的异同157

11.8.2 选择的原则157

11.9 本章小结158

11.10 同步练习159

第12章 属性与下标163

12.1 存储属性163

12.1.1 存储属性概念163

12.1.2 延迟存储属性164

12.2 计算属性165

12.2.1 计算属性的概念165

12.2.2 只读计算属性167

12.2.3 结构体和枚举中的计算属性168

12.3 属性观察者169

12.4 静态属性171

12.4.1 结构体静态属性173

12.4.2 枚举静态属性174

12.4.3 类静态属性175

12.5 使用下标176

12.5.1 下标概念176

12.5.2 示例:二维数组176

12.6 本章小结178

12.7 同步练习178

第13章 方法180

13.1 实例方法180

13.2 可变方法181

13.3 静态方法182

13.3.1 结构体静态方法183

13.3.2 枚举静态方法183

13.3.3 类静态方法184

13.4 本章小结184

13.5 同步练习185

第14章 构造与析构186

14.1 构造函数186

14.1.1 默认构造函数186

14.1.2 构造函数与存储属性初始化187

14.1.3 使用参数标签189

14.2 构造函数重载190

14.2.1 构造函数重载概念190

14.2.2 结构体构造函数代理191

14.2.3 类构造函数横向代理192

14.3 析构函数194

14.4 本章小结195

14.5 同步练习195

第15章 类继承197

15.1 从一个示例开始197

15.2 构造函数继承198

15.2.1 构造函数调用规则198

15.2.2 构造过程安全检查200

15.2.3 构造函数继承204

15.3 重写206

15.3.1 重写实例属性206

15.3.2 重写静态属性209

15.3.3 重写实例方法209

15.3.4 重写静态方法211

15.3.5 下标重写211

15.3.6 使用final关键字213

15.4 类型检查与转换214

15.4.1 使用is进行类型检查216

15.4.2 使用as、as !和as?进行类型转换217

15.4.3 使用AnyObject和Any类型220

15.5 本章小结221

15.6 同步练习221

第16章 扩展223

16.1 “轻量级”继承机制223

16.2 声明扩展223

16.3 扩展计算属性224

16.4 扩展方法226

16.5 扩展构造函数227

16.5.1 值类型扩展构造函数227

16.5.2 引用类型扩展构造函数228

16.6 扩展下标229

16.7 本章小结230

16.8 同步练习230

第17章 协议231

17.1 协议概念231

17.2 协议定义和遵从232

17.3 协议方法232

17.3.1 协议实例方法232

17.3.2 协议静态方法233

17.3.3 协议可变方法234

17.4 协议属性236

17.4.1 协议实例属性236

17.4.2 协议静态属性237

17.5 面向协议编程238

17.5.1 协议类型238

17.5.2 协议的继承240

17.5.3 协议扩展242

17.5.4 协议的合成243

17.5.5 扩展中遵从协议244

17.6 面向协议编程示例:表视图中使用扩展协议245

17.7 本章小结247

17.8 同步练习247

第18章 泛型249

18.1 一个问题的思考249

18.2 泛型函数249

18.2.1 使用泛型函数250

18.2.2 多类型参数251

18.3 泛型类型251

18.4 泛型扩展253

18.5 本章小结254

18.6 同步练习254

第19章 Swift编码规范255

19.1 命名规范255

19.2 注释规范257

19.2.1 文件注释257

19.2.2 文档注释258

19.2.3 代码注释259

19.2.4 使用地标注释260

19.3 声明262

19.3.1 变量或常量声明262

19.3.2 属性声明263

19.4 代码排版264

19.4.1 空行264

19.4.2 空格265

19.4.3 断行266

19.4.4 缩进268

19.5 本章小结269

19.6 同步练习269

第二部分 进阶篇272

第20章 Swift内存管理272

20.1 Swift内存管理概述272

20.1.1 引用计数273

20.1.2 示例:Swift自动引用计数273

20.2 强引用循环275

20.3 打破强引用循环279

20.3.1 弱引用279

20.3.2 无主引用282

20.4 闭包中的强引用循环285

20.4.1 一个闭包中的强引用循环示例285

20.4.2 解决闭包强引用循环286

20.5 本章小结288

20.6 同步练习288

第21章 错误处理290

21.1 Cocoa错误处理模式290

21.2 do-try-catch错误处理模式291

21.2.1 捕获错误292

21.2.2 错误类型292

21.2.3 声明抛出错误293

21.2.4 在函数或方法中抛出错误293

21.2.5 try?和try!的使用区别294

21.3 案例:MyNotes应用数据持久层实现295

21.3.1 MyNotes应用介绍296

21.3.2 MyNotes应用数据持久层设计296

21.3.3 实现Note实体类297

21.3.4 NoteDAO代码实现297

21.3.5 使用defer语句释放资源298

21.3.6 测试示例299

21.4 本章小结300

21.5 同步练习301

第22章 Foundation框架302

22.1 数字类NSNumber302

22.1.1 获得NSNumber对象302

22.1.2 比较NSNumber对象304

22.1.3 数字格式化305

22.1.4 NSNumber与Swift原生数字类型之间的桥接307

22.2 字符串类307

22.2.1 NSString类308

22.2.2 NSMutableString类310

22.2.3 NSString与String之间的桥接312

22.3 数组类313

22.3.1 NSArray类313

22.3.2 NSMutableArray类314

22.3.3 NSArray与Swift原生数组之间的桥接315

22.4 字典类316

22.4.1 NSDictionary类316

22.4.2 NSMutableDictionary类317

22.4.3 NSDictionary与Swift原生字典之间的桥接318

22.5 NSSet集合类319

22.5.1 NSSet类320

22.5.2 NSMutableSet类321

22.5.3 NSSet与Swift原生Set之间的桥接322

22.6 文件管理322

22.6.1 访问目录322

22.6.2 目录操作323

22.6.3 文件操作324

22.7 字节缓存327

22.7.1 访问字节缓存327

22.7.2 示例:Base64解码与编码330

22.8 日期与时间332

22.8.1 NSDate和Date332

22.8.2 日期时间格式化334

22.8.3 NSCalendar、Calendar、NSDateComponents和DateComponents335

22.8.4 示例:时区转换337

22.9 使用谓词NSPredicate过滤数据339

22.9.1 一个过滤员工花名册的示例339

22.9.2 使用谓词NSPredicate341

22.9.3 NSPrdicate与集合342

22.9.4 格式说明符343

22.9.5 运算符344

22.10 使用正则表达式347

22.10.1 在NSPredicate中使用正则表达式347

22.10.2 使用NSRegularExpression348

22.10.3 示例:日期格式转换350

22.11 本章小结352

第三部分 混合编程篇354

第23章 Swift与Objective-C混合编程354

23.1 选择语言354

23.2 文件扩展名354

23.3 Swift与Objective-C API映射355

23.3.1 构造函数映射355

23.3.2 方法名映射357

23.4 同一应用目标中的混合编程360

23.4.1 什么是目标360

23.4.2 Swift调用Objective-C363

23.4.3 Objective-C调用Swift366

23.5 同一框架目标中的混合编程370

23.5.1 链接库和框架370

23.5.2 Swift调用Objective-C372

23.5.3 测试框架目标376

23.5.4 Objective-C调用Swift380

23.6 本章小结383

第24章 Swift与C/C++混合编程384

24.1 数据类型映射384

24.1.1 C语言基本数据类型384

24.1.2 C语言指针类型385

24.2 应用目标中的混合编程392

24.2.1 Swift调用C API392

24.2.2 Swift调用C++API393

24.3 框架目标中的混合编程399

24.3.1 同一框架目标中Swift调用C或C++API399

24.3.2 Swift调用第三方库中的C或C++API402

24.4 案例:用SQLite嵌入式数据库实现MyNotes数据持久层405

24.4.1 Note实体类代码405

24.4.2 创建表405

24.4.3 插入数据407

24.4.4 查询数据409

24.4.5 应用沙箱目录411

24.4.6 表示层开发412

24.5 本章小结414

第四部分 游戏篇416

第25章 SpriteKit游戏引擎416

25.1 移动平台游戏引擎介绍416

25.2 第一个SpriteKit游戏416

25.2.1 创建工程416

25.2.2 工程剖析419

25.3 一切都是节点426

25.3.1 节点“家族”426

25.3.2 节点树427

25.3.3 节点中重要的方法428

25.3.4 节点中重要的属性428

25.4 精灵429

25.4.1 精灵类SKSpriteNode429

25.4.2 案例:沙漠英雄场景431

25.4.3 使用纹理图集性能优化438

25.5 场景切换441

25.5.1 场景切换方法441

25.5.2 场景过渡动画442

25.5.3 案例:沙漠英雄场景切换443

25.6 动作447

25.6.1 常用动作447

25.6.2 组合动作449

25.6.3 案例:帧动画实现455

25.7 粒子系统458

25.7.1 粒子系统属性459

25.7.2 内置粒子系统模板460

25.8 游戏音乐与音效464

25.8.1 音频文件介绍464

25.8.2 macOS和iOS平台音频优化465

25.8.3 背景音乐466

28.8.4 3D音效467

25.9 物理引擎468

25.9.1 物理引擎核心概念469

25.9.2 物理引擎中的物体469

25.9.3 接触与碰撞471

25.9.4 案例:食品的接触与碰撞472

25.10 本章小结475

第五部分 项目实战篇478

第26章 游戏App实战——迷失航线478

26.1 《迷失航线》游戏分析与设计478

26.1.1 《迷失航线》故事背景478

26.1.2 需求分析478

26.1.3 原型设计479

26.1.4 游戏脚本480

26.2 任务1:游戏工程的创建与初始化481

26.2.1 迭代1.1 :创建工程481

26.2.2 迭代1.2 :自定义类型维护481

26.2.3 迭代1.3 :添加资源文件484

26.2.4 迭代1.4 :添加粒子系统486

26.3 任务2:创建Loading场景486

26.3.1 迭代2.1 :设计场景486

26.3.2 迭代2.2 :Loading动画487

26.3.3 迭代2.3 :预处理加载纹理488

26.4 任务3:创建Home场景489

26.4.1 迭代3.1 :设计场景489

26.4.2 迭代3.2 :实现代码490

26.5 任务4:创建设置场景493

26.5.1 迭代4.1 :设计场景493

26.5.2 迭代4.2 :实现代码494

26.6 任务5:创建帮助场景497

26.6.1 迭代5.1 :设计场景498

26.6.2 迭代5.2 :实现代码498

26.7 任务6:实现游戏场景499

26.7.1 迭代6.1 :设计场景500

26.7.2 迭代6.2 :创建敌人精灵502

26.7.3 迭代6.3 :创建玩家飞机精灵506

26.7.4 迭代6.4 :创建子弹精灵507

26.7.5 迭代6.5 :初始化游戏场景508

26.7.6 迭代6.6 :玩家移动飞机512

26.7.7 迭代6.7 :游戏循环与任务调度513

26.7.8 迭代6.8 :游戏场景菜单实现514

26.7.9 迭代6.9 :玩家飞机发射子弹516

26.7.10 迭代6.1 0:子弹与敌人的碰撞检测517

26.7.11 迭代6.1 1:玩家飞机与敌人的碰撞检测520

26.8 任务7:游戏结束场景521

26.8.1 迭代7.1 :设计场景522

26.8.2 迭代7.2 :实现代码523

26.9 还有“最后一公里”524

26.9.1 添加图标524

26.9.2 调整Identity和Deployment Info属性526

29.9.3 调整程序代码527

26.10 本章小结528

热门推荐