注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计Swift入门经典(第2版)

Swift入门经典(第2版)

Swift入门经典(第2版)

定 价:¥59.00

作 者: [美] BJ·米勒(BJ Miller) 著;陈宗斌 译
出版社: 人民邮电出版社
丛编项:
标 签: 编程语言与程序设计 计算机?网络

ISBN: 9787115444394 出版时间: 2017-02-01 包装: 平装
开本: 16开 页数: 338 字数:  

内容简介

  《Swift入门经典(第2版)》基于Apple发布的Swift编程语言进行编写,循序渐进地介绍了使用Swift编写安全、强大的代码所需要的基本概念、架构和语法等知识。《Swift入门经典(第2版)》分为24章,内容包括Swift开发环境简介,Swift的基本数据类型,运算符,处理集合类型,使用条件语句控制程序流程,可选值,利用循环迭代代码,使用函数执行动作,了解高阶函数和闭包,结构体和类的类继承,枚举,自定义类,属性,添加高级类型功能,内存分配和引用的概念,处理可选链接,泛型简介,面向协议编程,错误处理,与Objective-C的交互性,以及Swift中的函数式编程。《Swift入门经典(第2版)》内容深入浅出,通过简洁的语言和详细的步骤,帮助读者迅速掌握Swift开发所需要的知识。本书适合没有任何编程经验的新手阅读,也适合有志于从事iOS开发的人员阅读。

作者简介

  BJ Miller是DXY Solutions公司的一位iOS开发人员,DXY Solutions是俄亥俄州克利夫兰地区的一家移动、Web和设计咨询公司。BJ拥有俄亥俄州伯里亚市鲍德温—华莱士学院(现在更名为鲍德温—华莱士大学)的计算机科学学士学位,这个城镇也是他长大的地方。他近期的职业涉及大规模企业网络管理、SQL数据库管理,以及作为美国国防部的一名承包商负责Microsoft SharePoint Server和Microsoft Project Server的管理与集成,并且他所做的所有这些工作都具有Microsoft证书。在这之前,他曾经以CCNA的身份从事LAN工程,设计和实现网络基础结构。BJ在从事编程工作没多长时间后,就于2009年开始iOS开发,他对平台和Objective-C语言产生了深厚的兴趣。现在,他的爱好增加了Swift,而他的兴趣依然很广泛。2013年,他把自己的第1个应用发布到iOS App Store,它的名称是MyPrayerMap,是用于管理祈祷请求的简单工具。当他没有利用Objective-C或Swift为工作或者本书编写程序时,他喜欢陪伴妻子和两个孩子,阅读、收听音乐或播客,以及玩The Legend of Zelda(任何系统上的任何游戏他都感兴趣)。他还与Daniel Steinberg合作组建了Cleveland CocoaHeads Meetup(http://www.meetup.com/ Cleveland-CocoaHeads/),并且组建了该组织的一个分部,名称为Paired Programming Fun,它是一个临时性的集会,致力于研究在配对编程风格中Swift中的测试驱动的开发(Test-Driven Development,TDD)。BJ经常在CocoaHeads大会中介绍与iOS相关的主题,还在其他的大会(比如MacTech、CocoaConf(俄亥俄州哥伦布市)和CodeMash v2.0.1.5)上发表演讲。他还时不时地在http://bjmiller.me上写博客,并且在Twitter(推特)上注册有账号@bjmillerltd。

图书目录

第1章 Swift开发环境简介\t1
1.1 什么是Swift 2
1.2 起步 2
1.2.1 四处看看 2
1.2.2 Xcode playground 5
1.2.3 Swift REPL 7
1.3 小结 8
1.4 问与答 9
1.5 作业 9
第2章 学习Swift的基本数据类型 11
2.1 Swift中的常量 11
2.2 Swift中的变量 12
2.3 数据类型简介 13
2.3.1 类型推断 13
2.3.2 数据类型 14
2.3.3 初始化值 19
2.4 小结 20
2.5 问与答 20
2.6 作业 20
第3章 使用Swift中的运算符 22
3.1 一元运算符 22
3.1.1 递增和递减运算符 23
3.1.2 逻辑“非”运算符 23
3.1.3 一元减法运算符 23
3.2 二元运算符 24
3.2.1 标准算术运算符 24
3.2.2 余数运算符 24
3.2.3 赋值运算符 25
3.2.4 复合赋值运算符 25
3.2.5 比较运算符 25
3.2.6 范围运算符 26
3.2.7 逻辑运算符 27
3.3 三元条件运算符 29
3.4 小结 29
3.5 问与答 30
3.6 作业 30
第4章 处理集合类型 32
4.1 数组 32
4.1.1 用于访问值的索引和下标 34
4.1.2 操作数组 35
4.1.3 常用数组方法和属性 38
4.2 字典 38
4.2.1 键-值对 39
4.2.2 初始化字典 39
4.2.3 关于字典的类型推断 40
4.2.4 向字典中添加数据 40
4.2.5 从字典中移除键-值对 41
4.2.6 常用字典方法和属性 42
4.3 集 42
4.4 元组 46
4.5 小结 46
4.6 问与答 47
4.7 作业 47
第5章 利用条件语句控制程序流程 49
5.1 if语句 49
5.2 switch语句 53
5.2.1 不仅仅匹配Int值 54
5.2.2 switch语句的范围匹配 55
5.2.3 switch语句的元组匹配 57
5.2.4 利用where关键字细化switch case
语句 57
5.2.5 转移执行的控制权 58
5.2.6 稍微高级一点的模式匹配 60
5.3 小结 60
5.4 问与答 61
5.5 作业 61
第6章 了解可选值 63
6.1 什么是可选值 63
6.2 怎样将变量指定为可选的 64
6.3 包装和解包可选变量 65
6.3.1 利用解包运算符进行强制解包 65
6.3.2 可选绑定以解包变量 66
6.3.3 隐式解包的可选值 67
6.3.4 nil合并运算符 68
6.3.5 解包多个可选值 68
6.4 可选值的用例 69
6.5 小结 71
6.6 问与答 71
6.7 作业 72
第7章 利用循环迭代代码 73
7.1 两种循环类型 73
7.1.1 while循环 74
7.1.2 for循环 77
7.2 在循环中转移控制权 84
7.2.1 利用continue语句转移控制权 84
7.2.2 利用break语句转移控制权 84
7.3 小结 85
7.4 问与答 85
7.5 作业 86
第8章 使用函数执行动作 88
8.1 Swift中函数的性质 89
8.2 一般的函数语法和结构 89
8.3 没有参数和返回类型的函数 90
8.4 函数的类型 91
8.5 带有参数的函数 91
8.6 带有可变参数的函数 93
8.7 具有返回类型的函数 94
8.8 外部参数名称 98
8.9 默认的参数值 99
8.10 利用in-out形参改变实参值 99
8.11 提早退出 100
8.12 延迟执行 101
8.13 小结 102
8.14 问与答 102
8.15 作业 102
第9章 了解高阶函数和闭包 104
9.1 高阶函数 104
9.1.1 返回函数类型 105
9.1.2 在函数内嵌套函数 107
9.1.3 使用函数作为函数参数 109
9.2 闭包 110
9.2.1 闭包的结构 111
9.2.2 使用结尾闭包 117
9.3 小结 117
9.4 问与答 118
9.5 作业 118
第10章 学习结构体和类 120
10.1 Swift中的结构体和类概述 120
10.2 Swift结构体与类之间的
共同之处 122
10.2.1 定义属性 122
10.2.2 实例方法 123
10.2.3 结构体与类的相似之处 126
10.3 结构体与类之间的区别 128
10.3.1 改变结构体属性 129
10.3.2 比较类引用的相等性 130
10.3.3 比较实例的相等性 131
10.4 何时使用类或结构体 131
10.5 小结 131
10.6 问与答 132
10.7 作业 132
第11章 实现类继承 134
11.1 什么是继承 134
11.2 确定基类 135
11.3 创建子类 136
11.4 重写继承的方法 137
11.5 访问super 140
11.6 阻止重写 141
11.7 类的同一性 143
11.8 何时使用类继承 144
11.9 小结 145
11.10 问与答 145
11.11 作业 145
第12章 利用枚举的功能 148
12.1 了解Swift枚举 148
12.2 Swift枚举的结构 149
12.3 原始值 150
12.3.1 从枚举中获取原始值 150
12.3.2 通过原始值设置枚举值 151
12.4 枚举的简写语法 151
12.5 关联值 153
12.6 切换枚举值 154
12.7 给枚举添加实例方法 155
12.8 小结 157
12.9 问与答 158
12.10 作业 158
第13章 自定义类、结构体和枚举的
初始化器 160
13.1 初始化 160
13.1.1 初始化器的目标 161
13.1.2 总是具有初始化器 162
13.2 初始化值类型 162
13.2.1 设置默认值 162
13.2.2 初始化器中的外部参数名 166
13.2.3 初始化类类型 167
13.3 高级初始化 169
13.3.1 初始化委托 169
13.3.2 类的初始化委托 170
13.3.3 初始化过程 171
13.4 小结 176
13.5 问与答 176
13.6 作业 177
第14章 深入探讨属性 179
14.1 存储属性 180
14.1.1 实例变量 180
14.1.2 延迟存储属性 180
14.2 计算属性 182
14.3 属性访问器 182
14.3.1 获取器 182
14.3.2 设置器 183
14.4 属性观察器 185
14.5 继承和重写访问器 187
14.6 继承和重写观察器 189
14.7 小结 191
14.8 问与答 191
14.9 作业 192
第15章 添加高级类型功能 194
15.1 类型属性和类型方法 194
15.1.1 类型属性 194
15.1.2 计算类型属性 196
15.1.3 类型方法 197
15.2 类型别名 200
15.3 类型访问控制 201
15.4 下标 202
15.4.1 下标重载 205
15.4.2 重写下标 206
15.5 转型和非特定类型 206
15.5.1 确定实例的类型 206
15.5.2 向下转型 208
15.5.3 非特定类型 209
15.6 小结 210
15.7 问与答 210
15.8 作业 211
第16章 了解内存分配和引用 212
16.1 析构 212
16.2 自动引用计数 215
16.2.1 ARC的工作方式 215
16.2.2 引用关系和行为 215
16.2.3 引用循环 216
16.2.4 解决强引用循环 218
16.2.5 闭包和强引用循环 221
16.3 小结 224
16.4 问与答 224
16.5 作业 225
第17章 使用协议定义行为 226
17.1 定义协议 226
17.2 创建和采用协议 227
17.3 属性 228
17.4 在协议中定义方法 228
17.5 使用协议名称作为类型 230
17.6 采用和继承多个协议 231
17.7 可选的协议属性和方法 235
17.8 如何检查协议遵从性 236
17.9 把协议用于委托 236
17.10 小结 241
17.11 问与答 241
17.12 作业 242
第18章 使用扩展添加类型功能 244
18.1 定义扩展 244
18.2 利用扩展添加功能 245
18.2.1 计算实例和类型属性 246
18.2.2 实例方法和类型方法 247
18.2.3 在扩展中添加下标 248
18.2.4 利用扩展添加自定义
初始化器 249
18.2.5 给扩展添加嵌套类型 251
18.2.6 扩展中的协议采用和遵从性 252
18.3 小结 254
18.4 问与答 254
18.5 作业 254
第19章 处理可选链接 256
19.1 定义可选链接 256
19.2 链接可选属性 257
19.3 下标 258
19.4 方法 262
19.5 小结 264
19.6 问与答 264
19.7 作业 264
第20章 泛型简介 266
20.1 泛型简介 266
20.2 类型参数和占位符类型 267
20.3 指定类型约束 268
20.4 创建泛型类型 271
20.5 扩展泛型类型 273
20.6 在协议中使用关联类型 274
20.7 小结 276
20.8 问与答 276
20.9 作业 277
第21章 了解面向协议编程 278
21.1 协议概览 278
21.2 实现协议 279
21.3 协议扩展简介 279
21.4 创建协议扩展 280
21.5 什么是可自定义的 283
21.6 协议扩展中的类型约束 285
21.7 同种和异种集合 286
21.8 转换协议序列 288
21.9 小结 289
21.10 问与答 290
21.11 作业 290
第22章 处理错误 292
22.1 错误处理 292
22.2 Swift错误处理 293
22.2.1 自定义错误类型 294
22.2.2 抛出错误 295
22.2.3 捕获错误 297
22.2.4 延迟执行 300
22.3 小结 303
22.4 问与答 304
22.5 作业 304
第23章 添加与Objective-C之间的
互操作性 305
23.1 Objective-C的基础知识 305
23.1.1 文件结构 306
23.1.2 可空性 309
23.1.3 分配和初始化 310
23.2 桥接 311
23.2.1 模块桥接 311
23.2.2 类型桥接 311
23.3 把Swift集成进Objective-C
应用中 313
23.3.1 下载起始项目 313
23.3.2 创建Swift类和桥接头文件 315
23.3.3 清理 318
23.3.4 向Swift公开Objective-C类 318
23.3.5 利用Swift扩展Objective-C类 318
23.3.6 更新故事板中的类 319
23.3.7 运行应用 320
23.4 小结 321
23.5 问与答 322
23.6 作业 322
第24章 Swift中的函数式思考 324
24.1 什么是函数式编程 324
24.2 从函数的角度考虑问题 325
24.2.1 利用map执行变换 325
24.2.2 利用forEach进行迭代 327
24.2.3 过滤值 329
24.2.4 把函数链接在一起 330
24.2.5 合并对象 331
24.2.6 创建和重载运算符 333
24.3 小结 336
24.4 问与答 337
24.5 作业 337

本目录推荐