编辑推荐
适读人群 :本书读者对象为iOS和macOS平台移动开发人员。 1. 源自大名鼎鼎的Big Nerd Ranch训练营培训讲义,该训练营在Cocoa(之前为AppKit)开发及培训方面有近20年的经验。
2. 基础知识详细介绍+语言难点剖析,既适合Swift新手入门,也适合有经验的开发人员深入了解Swift特性。
3. 以实际例子阐述知识点,让读者了解更好的实践,也让代码可读性更强、更易维护。
4. 每章末尾的“挑战练习”帮你温故知新,充分巩固学到的知识。
内容简介
Big Nerd Ranch是美国一家专业的移动开发技术培训机构,本书是其培训教材。书中系统讲解了在iOS和macOS平台上,使用苹果的Swift语言开发iPhone、iPad和Mac应用的基本概念和编程技巧。主要围绕使用Swift语言进行iOS和macOS开发,结合大量代码示例,教会读者利用高级iOS和macOS特性开发真实的应用。
作者简介
Matthew Mathias
Big Nerd Ranch教学主管、iOS讲师。社会学博士,曾在高校任教。目前致力于通过Big Nerd Ranch为广大编程爱好者提供好的编程教材和培训。工作之余,Matt喜欢骑车、看漫画、打游戏等。
John Gallagher
Big Nerd Ranch软件工程师、讲师。除了为客户开发App,他的大部分职业生涯都在与非常小的嵌入式系统和非常大的超级电脑打交道。他喜欢学习新的编程语言,并且寻找将其组合使用的方法。工作之余,John的大部分空闲时间都与妻子和三个女儿在一起。
目录
第一部分 起步
第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
第二部分 基础知识
第3章 条件语句 14
3.1 if/else 14
3.2 三目运算符 16
3.3 嵌套的if 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
第三部分 容器和函数
第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
第四部分 枚举、结构体和类
第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 结构体的默认初始化方法 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高级编程
第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 用扩展使类型符合协议 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.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
第六部分 事件驱动的应用
第26章 第一个Cocoa应用 296
26.1 开始创建VocalTextEdit 297
26.2 模型-视图-控制器 298
26.3 设置视图控制器 299
26.4 在Interface Builder中设置视图 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模式整理代码 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 361
28.4 白银挑战练习 368
28.5 黄金挑战练习 368
第29章 结语 369
29.1 接下来学习什么 369
29.2 插个广告 369
29.3 邀请 369
Swift编程权威指南 第2版 epub pdf mobi txt 电子书 下载 2024
Swift编程权威指南 第2版 下载 epub mobi pdf txt 电子书 2024