作者简介:
Boisy G. Pitre
资深苹果开发专家,曾任Siri语音识别技术提供方Nuance公司Mac产品小组的资深软件工程师,参与开发了语音识别软件Dragon Dictate。MacTech杂志“Developer to Developer”月度专栏作家,曾多次在MacTech和CocoaConf等会议上发表技术演讲。现任情绪识别公司Affectiva的移动远景规划师,领导团队致力于将公司的表情分析技术迁移到移动平台。
译者简介:
袁国忠
自由译者;2000年起专事翻译,主译图书,偶译新闻稿、软文;出版译著40余部,其中包括《C++ Prime Plus中文版》《CCNA学习指南》《CCNP ROUTE学习指南》《面向模式的软件架构:模式系统》《Android应用UI设计模式》《风投的选择:谁是下一个十亿美元级公司》等,总计700余万字;专事翻译前,从事过三年化工产品分析和开发,做过两年杂志和图书编辑。
第一部分 基础知识
第1章 Swift简介2
1.1 革命性的改良2
1.2 准备工作3
1.2.1 专业工具3
1.2.2 与Swift交互3
1.3 准备出发4
1.4 开始探索Swift6
1.4.1 帮助和退出6
1.4.2 Hello World6
1.5 声明的威力7
1.6 常量9
1.7 类型10
1.7.1 检查上限和下限11
1.7.2 类型转换11
1.7.3 显式地声明类型12
1.8 字符串13
1.8.1 字符串拼接13
1.8.2 Character类型14
1.9 数学运算符14
1.9.1 表达式15
1.9.2 混用不同的数值类型15
1.9.3 数值表示16
1.10 布尔类型17
1.11 轻松显示18
1.12 使用类型别名19
1.13 使用元组将数据编组19
1.14 可选类型20
1.15 小结22
第2章 使用集合23
2.1 糖果罐23
2.1.1 数组中所有元素的类型都必须相同26
2.1.2 增长数组26
2.1.3 替换和删除值27
2.1.4 将值插入到指定位置28
2.1.5 合并数组29
2.2 字典30
2.2.1 查找条目31
2.2.2 添加条目32
2.2.3 更新条目33
2.2.4 删除条目33
2.3 数组的数组34
2.4 创建空数组和空字典36
2.4.1 空数组36
2.4.2 空字典37
2.5 迭代集合38
2.5.1 迭代数组38
2.5.2 迭代字典39
2.6 小结40
第3章 流程控制41
3.1 for循环41
3.1.1 计数41
3.1.2 包含还是不包含结束数字42
3.1.3 老式for循环43
3.1.4 简写44
3.2 游乐场45
3.3 决策48
3.3.1 if语句48
3.3.2 检查多个条件52
3.3.3 switch语句53
3.3.4 while循环56
3.3.5 检查代码58
3.3.6 提早结束循环61
3.4 小结61
第4章 编写函数和闭包62
4.1 函数62
4.1.1 使用Swift编写函数63
4.1.2 执行函数64
4.1.3 参数并非只能是数字65
4.1.4 可变参数66
4.1.5 函数是一级对象69
4.1.6 从函数返回函数71
4.1.7 嵌套函数73
4.1.8 默认参数76
4.1.9 函数名包含哪些内容77
4.1.10 清晰程度79
4.1.11 用不用外部参数名80
4.1.12 变量参数81
4.1.13 inout 参数84
4.2 闭包86
4.3 小结88
4.4 类89
第5章 使用类和结构组织代码90
5.1 对象无处不在90
5.2 Swift对象是使用类定义的91
5.2.1 定义类91
5.2.2 创建对象93
5.2.3 开门和关门93
5.2.4 锁门和开锁94
5.2.5 查看属性96
5.2.6 门应是各式各样的97
5.2.7 修改颜色99
5.3 继承99
5.3.1 创建基类100
5.3.2 创建子类103
5.3.3 实例化子类104
5.3.4 便利初始化方法109
5.3.5 枚举111
5.3.6 结构113
5.3.7 值类型和引用类型114
5.4 小结116
第6章 使用协议和扩展进行规范化117
6.1 遵循协议117
6.1.1 类还是协议117
6.1.2 协议并非只能定义方法119
6.1.3 遵循多个协议121
6.1.4 协议也可继承122
6.1.5 委托123
6.2 扩展126
6.2.1 扩展基本类型127
6.2.2 在扩展中使用闭包130
6.3 小结132
第二部分 使用Swift开发软件
第7章 使用Xcode134
7.1 Xcode简史134
7.2 创建第一个Swift项目135
7.3 Xcode界面136
7.3.1 与Xcode窗口交互138
7.3.2 运行应用程序139
7.4 开发应用程序140
7.4.1 腾出空间141
7.4.2 创建界面142
7.4.3 美化145
7.4.4 编写代码146
7.4.5 建立连接149
7.5 小结151
第8章 改进应用程序152
8.1 细节很重要152
8.1.1 显示金额152
8.1.2 再谈可选类型154
8.1.3 可选类型拆封154
8.1.4 美化155
8.1.5 另一种格式设置方法156
8.2 计算复利159
8.2.1 连接起来161
8.2.2 测试164
8.3 调试164
8.3.1 bug在哪里164
8.3.2 断点165
8.3.3 复杂的复利计算168
8.4 测试的价值169
8.4.1 单元测试169
8.4.2 编写测试169
8.4.3 如果测试未通过172
8.4.4 始终运行的测试173
8.5 小结174
第9章 Swift移动开发175
9.1 移动设备和台式机175
9.2 挑战记忆力175
9.2.1 考虑玩法176
9.2.2 设计UI176
9.3 创建项目177
9.4 创建用户界面179
9.4.1 创建按钮180
9.4.2 在模拟器中运行182
9.4.3 设置约束183
9.5 MVC 186
9.6 编写游戏代码186
9.6.1 类189
9.6.2 枚举190
9.6.3 视图对象190
9.6.4 模型对象190
9.6.5 可重写的方法191
9.6.6 游戏的方法191
9.6.7 处理输赢195
9.7 回到故事板196
9.8 开玩198
第10章 其他主题199
10.1 Swift内存管理199
10.1.1 值和引用199
10.1.2 引用计数200
10.1.3 引用循环200
10.1.4 演示引用循环201
10.1.5 编写测试代码202
10.1.6 断开引用循环204
10.1.7 闭包中的引用循环205
10.1.8 感恩207
10.2 逻辑运算符207
10.2.1 逻辑非207
10.2.2 逻辑与208
10.2.3 逻辑或208
10.3 泛型209
10.4 运算符重载210
10.5 相等和相同213
10.6 Swift脚本编程214
10.6.1 编辑脚本215
10.6.2 设置权限216
10.6.3 运行脚本216
10.6.4 工作原理216
10.7 获取帮助218
10.8 独闯江湖219
10.8.1 研究苹果公司提供的框架219
10.8.2 加入苹果开发者计划220
10.8.3 成为社区的一分子220
10.8.4 活到老学到老220
10.8.5 一路平安220
MATLAB 2018从入门到精通-中文版-实战案例版 本书特色 1.402集视频讲解。为方便读者学习,本书对书中实例录制了视频,并生成二维码,可以手机扫码看视...
《高速信号传输工程化技术:概念与方法》内容简介:本书对高速信号传输相关技术中需要掌握的概念、理论和方法深入浅出地给出了定义
MATLAB GUI设计学习手记-(第3版) 本书特色《matlab gui设计学习手记》(第3版)在《matlab gui设计学习手记》(第2版)的基础上,结...
《数码摄影后期高手之路》内容简介:本书是国内知名的图形图像专家——李涛多年在摄影后期教学实践的总结。他通过拍摄及后期操作前
Computersciencestudieshowtodescribe,predictpropertiesof,andefficientlyimplementi...
中文版3ds Max 2016完全自学教程 本书特色 本书是一本全面介绍中文版3ds Max 2016基本功能及实际运用的书。本书完全针对零基础读者编写,是入门...
郝柏林,1934年6月生于北京市。1959年毕业于乌克兰国立哈尔科夫大学物理数学系。后在中国科学院物理研究所工作。1978年晋升为研究
《JavaScript框架设计》内容简介:本书是一本全面讲解JavaScript框架设计的图书,详细地讲解了设计框架需要具备的知识,主要包括的
《了不起的王德妙:消防安全篇2》内容简介:本套丛书以漫画故事小贴士相结合的形式呈现,本书讲述消防安全知识。书中内容取自于隔壁
《在你身边,为你设计》内容简介:设计属于所有人,也意在为所有人使用,这既是设计的价值,也是设计的责任。腾讯公司用户研究与体
Linux 高性能服务器编程 本书特色 性能对服务器程序至关重要,它直接决定了前端的用户体验。确保服务器程序在多连接、高并发状况下不出现明显的性能下降,是开发高...
《建筑是什么》内容简介:《建筑是什么:关于当今中国建筑的思考》对近年建筑及房地产业的业内热点问题进行评论,反思当今中国建筑
JenniferCampbell是多伦多大学计算机科学系高级讲师,本书所基于的课程就是由她创建的。PaulGries是多伦多大学计算机科学系高级讲
五笔字型速查字典 本书特色 《五笔字型速查字典》适合广大计算机初学者、企业文秘人员及专业文字录入人员等使用。五笔字型速查字典 内容简介 本字典列出了6763个国...
《致敬伟大的科学家》内容简介:科学技术的发展,与科学家的持续努力密不可分。本书选取了古今中外30多位科学家,用讲故事的方式展
《超级科学家:人工智能》内容简介:“超级科学家”系列是一套专门为7-12岁儿童量身打造的儿童科普书,通俗易懂是这套书的最大特色
《开源硬件创客》内容简介:本书共分18章,前3章是本书的基础章节,主要介绍了树莓派的一些基本情况和基本操作,来让读者了解树莓派
计算机审计实务操作-(附光盘) 本书特色 本书是在分析总结实际审计工作经验的基础上编写而成的。全书以计算机在审计中的应用操作为核心,全面介绍了审计实务操作的技术...
《银行内部控制对信贷风险的影响研究》内容简介:本书依据信息不对称、委托代理、内部控制等理论,结合中国信贷市场制度背景,分析
地理信息系统导论 内容简介 本书是地理信息系统的入门教材,融GIS基本概念、基本原理和应用技能训练为一体,结构体系考究、内容针对性强、条理清晰、图文并茂、深入浅...