产品特色
编辑推荐
- 畅销书《iOS开发指南》作者全新力作!
- 基于Swift 3.x,教你如何从零开始开发并上架应用
- 涵盖面向协议编程、Swift编码规范、混合编程(Objective-C/C/C++与Swift)、SpriteKit等
- 本书配套网站不仅提供了交流平台,更有作者提供热心答疑与指导
- 200多个完整示例项目源代码,详细解析Swift 3.x的核心知识点
内容简介
本书基于Swift 3.x,通过大量案例全面介绍苹果平台的应用开发。全书共分5部分,diyi部分介绍了Swift的一些基础知识,第二部分介绍了基于Swift语言的中高级内容,第三部分主要介绍了Swift与Objective-C/C/C++的混合编程等相关问题,第四部分介绍了基于Swift语言的2D游戏引擎技术,第五部分详细介绍了一个游戏App的开发过程。
作者简介
关东升,一个在IT领域摸爬滚打20年的程序员、培训师、作者,另著有《iOS开发指南(第5版)》《Android网络游戏开发实战》《Cocos2d-x实战》系列等书。
目录
第1章 准备起航
1.1 本书约定
1.1.1 示例代码约定
1.1.2 图示约定
1.1.3 函数和方法签名约定
1.1.4 承接上一行代码约定
1.1.5 代码行号约定
1.2 Swift开发工具
1.2.1 Xcode开发工具
1.2.2 AppCode开发工具
1.3 本章小结
1.4 同步练习
第2章 第一个SWIFT程序
2.1 使用REPL
2.1.1 启动Swift REPL
2.1.2 使用Swift REPL
2.2 使用Playground
2.2.1 编程利器Playground
2.2.2 编写HelloWorld程序
2.3 通过Xcode创建macOS工程
2.3.1 创建macOS工程
2.3.2 编译和运行
2.4 使用swiftc命令
2.4.1 编译
2.4.2 运行
2.5 代码解释
2.6 本章小结
2.10 同步练习
第3章 SWIFT语法基础
3.1 标识符和关键字
3.1.1 标识符
3.1.2 关键字
3.2 常量和变量
3.2.1 常量
3.2.2 变量
3.2.3 使用var还是let
3.3 注释
3.4 表达式
3.5 本章小结
3.6 同步练习
第4章 运算符
4.1 算术运算符
4.1.1 一元运算符
4.1.2 二元运算符
4.1.3 算术赋值运算符
4.2 关系运算符
4.3 逻辑运算符
4.4 位运算符
4.5 其他运算符
4.6 本章小结
4.7 同步练习
第5章 SWIFT原生数据类型
5.1 Swift数据类型
5.2 整型
5.3 浮点型
5.4 数字表示方式
5.4.1 进制数字表示
5.4.2 指数表示
5.4.3 其他表示
5.5 数字类型之间的转换
5.5.1 整型之间的转换
5.5.2 整型与浮点型之间的转换
5.6 布尔型
5.7 元组类型
5.8 可选类型
5.8.1 可选类型概念
5.8.2 可选类型值拆包
5.8.3 可选绑定
5.9 本章小结
5.10 同步练习
第6章 SWIFT原生字符串
6.1 字符
6.1.1 Unicode编码
6.1.2 转义符
6.2 创建字符串
6.3 可变字符串
6.3.1 字符串拼接
6.3.2 字符串插入、删除和替换
6.4 字符串比较
6.4.1 大小和相等比较
6.4.2 前缀和后缀比较
6.5 本章小结
6.6 同步练习
第7章 控制语句
7.1 分支语句
7.1.1 if语句
7.1.2 switch语句
7.1.3 guard语句
7.2 循环语句
7.2.1 while语句
7.2.2 repeat-while语句
7.2.3 for语句
7.3 跳转语句
7.3.1 break语句
7.3.2 continue语句
7.3.3 fallthrough语句
7.4 范围与区间运算符
7.4.1 switch中使用区间运算符
7.4.2 for中使用区间运算符
7.5 值绑定
7.5.1 if中的值绑定
7.5.2 guard中的值绑定
7.5.3 switch中的值绑定
7.6 where语句
7.6.1 switch中使用where语句
7.6.2 for中使用where语句
7.7 本章小结
7.8 同步练习
第8章 SWIFT原生集合类型
8.1 Swift中的数组集合
8.1.1 数组声明和初始化
8.1.2 可变数组
8.1.3 数组遍历
8.2 Swift中的字典集合
8.2.1 字典声明与初始化
8.2.2 可变字典
8.2.3 字典遍历
8.3 Swift中的Set集合
8.3.1 Set声明和初始化
8.3.2 可变Set集合
8.3.3 Set集合遍历
8.3.4 Set集合运算
8.4 本章小结
8.5 同步练习
第9章 函数
9.1 定义函数
9.2 函数参数
9.2.1 使用参数标签
9.2.2 省略参数标签
9.2.3 参数默认值
9.2.4 可变参数
9.2.5 值类型参数的引用传递
9.3 函数返回值
9.3.1 无返回值函数
9.3.2 多返回值函数
9.4 函数类型
9.4.1 作为函数返回类型使用
9.4.2 作为参数类型使用
9.5 嵌套函数
9.6 本章小结
9.7 同步练习
第10章 闭包
10.1 回顾嵌套函数
10.2 闭包的概念
10.3 使用闭包表达式
10.3.1 类型推断简化
10.3.2 隐藏return关键字
10.3.3 省略参数名
10.3.4 使用闭包返回值
10.4 使用尾随闭包
10.5 捕获上下文中的变量和常量
10.6 本章小结
10.7 同步练习
第11章 SWIFT语言中的面向对象特性
11.1 面向对象概念和基本特征
11.2 Swift中的面向对象类型
11.3 枚举
11.3.1 成员值
11.3.2 原始值
11.3.3 相关值
11.4 结构体与类
11.4.1 类和结构体定义
11.4.2 再谈值类型和引用类型
11.4.3 引用类型的比较
11.4.4 运算符重载
11.5 类型嵌套
11.6 可选链
11.6.1 可选链的概念
11.6.2 使用问号( )和感叹号(!)
11.7 访问限定
11.7.1 访问范围
11.7.2 访问级别
11.7.3 使用访问级别最佳实践
11.8 选择类还是结构体最佳实践
11.8.1 类和结构体的异同
11.8.2 选择的原则
11.9 本章小结
11.10 同步练习
第12章 属性与下标
12.1 存储属性
12.1.1 存储属性概念
12.1.2 延迟存储属性
12.2 计算属性
12.2.1 计算属性的概念
12.2.2 只读计算属性
12.2.3 结构体和枚举中的计算属性
12.3 属性观察者
12.4 静态属性
12.4.1 结构体静态属性
12.4.2 枚举静态属性
12.4.3 类静态属性
12.5 使用下标
12.5.1 下标概念
12.5.2 示例:二维数组
12.6 本章小结
12.7 同步练习
第13章 方法
13.1 实例方法
13.2 可变方法
13.3 静态方法
13.3.1 结构体静态方法
13.3.2 枚举静态方法
13.3.3 类静态方法
13.4 本章小结
13.5 同步练习
第14章 构造与析构
14.1 构造函数
14.1.1 默认构造函数
14.1.2 构造函数与存储属性初始化
14.1.3 使用参数标签
14.2 构造函数重载
14.2.1 构造函数重载概念
14.2.2 结构体构造函数代理
14.2.3 类构造函数横向代理
14.3 析构函数
14.4 本章小结
14.5 同步练习
第15章 类继承
15.1 从一个示例开始
15.2 构造函数继承
15.2.1 构造函数调用规则
15.2.2 构造过程安全检查
15.2.3 构造函数继承
15.3 重写
15.3.1 重写实例属性
15.3.2 重写静态属性
15.3.3 重写实例方法
15.3.4 重写静态方法
15.3.5 下标重写
15.3.6 使用final关键字
15.4 类型检查与转换
15.4.1 使用is进行类型检查
15.4.2 使用as、as!和as 进行类型转换
15.4.3 使用AnyObject和Any类型
15.5 本章小结
15.6 同步练习
第16章 扩展
16.1 “轻量级”继承机制
16.2 声明扩展
16.3 扩展计算属性
16.4 扩展方法
16.5 扩展构造函数
16.5.1 值类型扩展构造函数
16.5.2 引用类型扩展构造函数
16.6 扩展下标
16.7 本章小结
16.8 同步练习
第17章 协议
17.1 协议概念
17.2 协议定义和遵从
17.3 协议方法
17.3.1 协议实例方法
17.3.2 协议静态方法
17.3.3 协议可变方法
17.4 协议属性
17.4.1 协议实例属性
17.4.2 协议静态属性
17.5 面向协议编程
17.5.1 协议类型
17.5.2 协议的继承
17.5.3 协议扩展
17.5.4 协议的合成
17.5.5 扩展中遵从协议
17.6 面向协议编程示例:表视图中使用扩展协议
17.7 本章小结
17.8 同步练习
第18章 泛型
18.1 一个问题的思考
18.2 泛型函数
18.2.1 使用泛型函数
18.2.2 多类型参数
18.3 泛型类型
18.4 泛型扩展
18.5 本章小结
18.6 同步练习
第19章 SWIFT编码规范
19.1 命名规范
19.2 注释规范
19.2.1 文件注释
19.2.2 文档注释
19.2.3 代码注释
19.2.4 使用地标注释
19.3 声明
19.3.1 变量或常量声明
19.3.2 属性声明
19.4 代码排版
19.4.1 空行
19.4.2 空格
19.4.3 断行
19.4.4 缩进
19.5 本章小结
19.6 同步练习
第20章 SWIFT内存管理
20.1 Swift内存管理概述
20.1.1 引用计数
20.1.2 示例:Swift自动引用计数
20.2 强引用循环
20.3 打破强引用循环
20.3.1 弱引用
20.3.2 无主引用
20.4 闭包中的强引用循环
20.4.1 一个闭包中的强引用循环示例
20.4.2 解决闭包强引用循环
20.5 本章小结
20.6 同步练习
第21章 错误处理
21.1 Cocoa错误处理模式
21.2 do-try-catch错误处理模式
21.2.1 捕获错误
21.2.2 错误类型
21.2.3 声明抛出错误
21.2.4 在函数或方法中抛出错误
21.2.5 try 和try!的使用区别
21.3 案例:MyNotes应用数据持久层实现
21.3.1 MyNotes应用介绍
21.3.2 MyNotes应用数据持久层设计
21.3.3 实现Note实体类
21.3.4 NoteDAO代码实现
21.3.5 使用defer语句释放资源
21.3.6 测试示例
21.4 本章小结
21.5 同步练习
第22章 FOUNDATION框架
22.1 数字类NSNumber
22.1.1 获得NSNumber对象
22.1.2 比较NSNumber对象
22.1.3 数字格式化
22.1.4 NSNumber与Swift原生数字类型之间的桥接
22.2 字符串类
22.2.1 NSString类
22.2.2 NSMutableString类
22.2.3 NSString与String之间的桥接
22.3 数组类
22.3.1 NSArray类
22.3.2 NSMutableArray类
22.3.3 NSArray与Swift原生数组之间的桥接
22.4 字典类
22.4.1 NSDictionary类
22.4.2 NSMutableDictionary类
22.4.3 NSDictionary与Swift原生字典之间的桥接
22.5 NSSet集合类
22.5.1 NSSet类
22.5.2 NSMutableSet类
22.5.3 NSSet与Swift原生Set之间的桥接
22.6 文件管理
22.6.1 访问目录
22.6.2 目录操作
22.6.3 文件操作
22.7 字节缓存
22.7.1 访问字节缓存
22.7.2 示例:Base64解码与编码
22.8 日期与时间
22.8.1 NSDate和Date
22.8.2 日期时间格式化
22.8.3 NSCalendar、Calendar、NSDateComponents和DateComponents
22.8.4 示例:时区转换
22.9 使用谓词NSPredicate过滤数据
22.9.1 一个过滤员工花名册的示例
22.9.2 使用谓词NSPredicate
22.9.3 NSPrdicate与集合
22.9.4 格式说明符
22.9.5 运算符
22.10 使用正则表达式
22.10.1 在NSPredicate中使用正则表达式
22.10.2 使用NSRegularExpression
22.10.3 示例:日期格式转换
22.11 本章小结
第23章 SWIFT与OBJECTIVE-C混合编程
23.1 选择语言
23.2 文件扩展名
23.3 Swift与Objective-C API映射
23.3.1 构造函数映射
23.3.2 方法名映射
23.4 同一应用目标中的混合编程
23.4.1 什么是目标
23.4.2 Swift调用Objective-C
23.4.3 Objective-C调用Swift
23.5 同一框架目标中的混合编程
23.5.1 链接库和框架
23.5.2 Swift调用Objective-C
23.5.3 测试框架目标
23.5.4 Objective-C调用Swift
23.6 本章小结
第24章 SWIFT与C/C++混合编程
24.1 数据类型映射
24.1.1 C语言基本数据类型
24.1.2 C语言指针类型
24.2 应用目标中的混合编程
24.2.1 Swift调用C API
24.2.2 Swift调用C++ API
24.3 框架目标中的混合编程
24.3.1 同一框架目标中Swift调用C或C++ API
24.3.2 Swift调用第三方库中的C或C++ API
24.4 案例:用SQLite嵌入式数据库实现MyNotes数据持久层
24.4.1 Note实体类代码
24.4.2 创建表
24.4.3 插入数据
24.4.4 查询数据
24.4.5 应用沙箱目录
24.4.6 表示层开发
24.5 本章小结
第25章 SPRITEKIT游戏引擎
25.1 移动平台游戏引擎介绍
25.2 第一个SpriteKit游戏
25.2.1 创建工程
25.2.2 工程剖析
25.3 一切都是节点
25.3.1 节点“家族”
25.3.2 节点树
25.3.3 节点中重要的方法
25.3.4 节点中重要的属性
25.4 精灵
25.4.1 精灵类SKSpriteNode
25.4.2 案例:沙漠英雄场景
25.4.3 使用纹理图集性能优化
25.5 场景切换
25.5.1 场景切换方法
25.5.2 场景过渡动画
25.5.3 案例:沙漠英雄场景切换
25.6 动作
25.6.1 常用动作
25.6.2 组合动作
25.6.3 案例:帧动画实现
25.7 粒子系统
25.7.1 粒子系统属性
25.7.2 内置粒子系统模板
25.8 游戏音乐与音效
25.8.1 音频文件介绍
25.8.2 macOS和iOS平台音频优化
25.8.3 背景音乐
25.8.4 3D音效
25.9 物理引擎
25.9.1 物理引擎核心概念
25.9.2 物理引擎中的物体
25.9.3 接触与碰撞
25.9.4 案例:食品的接触与碰撞
25.10 本章小结
第26章 游戏APP实战——迷失航线
从零开始学Swift(第2版) 下载 mobi epub pdf txt 电子书 格式