新書推薦:
《
卡特里娜(“同一颗星球”丛书)
》
售價:NT$
398.0
《
伟大民族:从路易十五到拿破仑的法国史(方尖碑)
》
售價:NT$
857.0
《
古今“书画同源”论辨——中国书法与中国绘画的关系问题兼中国画笔墨研究
》
售價:NT$
602.0
《
《日本文学史序说》讲演录
》
售價:NT$
332.0
《
无尽的海洋:美国海事探险与大众文化(1815—1860)
》
售價:NT$
454.0
《
治盗之道:清代盗律的古今之辨
》
售價:NT$
556.0
《
甲骨文丛书·剑桥世界暴力史(第一卷):史前和古代世界(套装全2册)
》
售價:NT$
959.0
《
甲骨文丛书·中华早期帝国:秦汉史的重估
》
售價:NT$
1367.0
編輯推薦:
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 尝试playground4
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 ifelse14
3.2 三目运算符16
3.3 嵌套的if17
3.4 else if18
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 什么是switch29
5.2 开始使用switch30
5.2.1 区间32
5.2.2 值绑定33
5.2.3 where子句34
5.2.4 元组和模式匹配35
5.3 switch与ifelse38
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 Unicode53
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 深入学习:Void105
第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 扩展Exercise264
23.3 带where子句的协议扩展265
23.4 用协议扩展提供默认实现266
23.5 关于命名:一个警世故事268
23.6 青铜挑战练习270
23.7 黄金挑战练习270
第24章 内存管理和ARC271
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和Comparable284
25.1.1 插曲:中缀运算符286
25.1.2 方法买一赠一287
25.2 符合Comparable287
25.3 继承Comparable289
25.4 青铜挑战练习290
25.5 黄金挑战练习290
25.6 白金挑战练习291
25.7 深入学习:自定义运算符291
第六部分 事件驱动的应用
第26章 第一个Cocoa应用296
26.1 开始创建VocalTextEdit297
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 开始创建iTahDoodle322
27.2 布局用户界面323
27.3 为待办事项列表建模331
27.4 设置UITableView335
27.5 保存和加载TodoList337
27.5.1 保存TodoList337
27.5.2 加载TodoList339
27.6 青铜挑战练习341
27.7 白银挑战练习341
27.8 黄金挑战练习341
第28章 互操作342
28.1 一个Objective-C工程342
28.2 在Objective-C工程中加入Swift361
28.4 白银挑战练习368
28.5 黄金挑战练习368
第29章 结语369
29.1 接下来学习什么369
29.2 插个广告369
29.3 邀请369