《Swift开发秘籍》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(美)EricaSadun著;李泽鲁译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:9787302443759
  • 页数:217 页
图书介绍:编写能与编译器良好交互的Swift代码,使用Xcode处理Swift语言的新变化,构建反馈、文档化以及调试,使用闭包封装状态和功能,使用所有Swift类型:类、枚举和结构体,使用泛型和协议拓展功能和单一类型,错误处理,使用Swift的一些革新功能

第1章 欢迎使用Swift 1

1.1 代码迁移 2

1.1.1 如何迁移 2

1.1.2 迁移课程 3

1.2 使用Swift 4

1.2.1 编译应用 4

1.2.2 框架和库 5

1.2.3 脚本 6

1.2.4 REPL 6

1.2.5 Playground 7

1.2.6 其他 8

1.3 学习Swift 8

1.4 小结 9

第2章 打印与映射 11

2.1 基础打印 11

2.1.1 打印多个条目 12

2.1.2 添加条目分隔符 13

2.1.3 字符串插值 13

2.1.4 控制换行符 14

2.2 秘诀:打印自定义目标 16

2.2.1 打印字符串 16

2.2.2 打印自定义输出流 17

2.3 秘诀:打印和字符串格式化 19

2.3.1 Swift和格式说明符 20

2.3.2 格式化的局限性 20

2.3.3 条件编译 21

2.4 调试打印 22

2.5 秘诀:后缀打印 24

2.6 快速查找 25

2.6.1 Quick Look for Custom Types 25

2.6.2 Playground中的Quick Look for Custom Types 26

2.6.3 Playground Quick Looks 26

2.6.4 为Playground创建自定义Quick Look 27

2.6.5 内置Quick Look类型 28

2.6.6 第三方渲染 29

2.7 使用Dump函数 30

2.8 构建自定义映射 31

2.8.1 递归映射 33

2.8.2 使用协议一致性构建基本映射描述 33

2.9 添加标题文档 35

2.9.1 构建标题文档 36

2.9.2 Markdown支持 36

2.9.3 关键字 37

2.9.4 特殊的Swift关注点 39

2.9.5 为标题文档添加图像 40

2.10 小结 41

第3章 可选类型?! 43

3.1 可选类型初步 43

3.2 展开可选值(Unwrapping Optionals) 45

3.2.1 强制展开 45

3.2.2 条件绑定 45

3.2.3 条件绑定和类型转换 46

3.2.4 级联绑定 48

3.2.5 guard语句 49

3.2.6 可选值的隐式展开 50

3.2.7 保护failable初始化器 52

3.2.8 可选值和哨兵值 53

3.2.9 合并 55

3.2.10 可选赋值 55

3.2.11 可选模式 56

3.3 可选链 58

3.3.1 选择器测试和可选链 60

3.3.2 下标 61

3.4 可选映射 61

3.4.1 映射和链 62

3.4.2 使用flatMap过滤nil值 62

3.5 非托管包装器 63

3.6 小结 64

第4章 闭包和函数 67

4.1 创建函数 67

4.1.1 参数名 68

4.1.2 标签约定 68

4.1.3 方法和函数的命名 70

4.1.4 外部和局部参数 71

4.1.5 默认参数 71

4.1.6 常量和变量参数 73

4.1.7 修改参数 74

4.2 闭包和函数 75

4.2.1 函数类型 75

4.2.2 使用元组实参 76

4.2.3 使用实参名缩写 77

4.2.4 推断闭包类型 78

4.2.5 参数类型推断 80

4.2.6 声明类型别名 80

4.2.7 嵌套函数 81

4.3 元组 83

4.3.1 将元组转换成结构体 84

4.3.2 元组返回类型 85

4.4 可变参数 86

4.5 捕获值 87

4.6 Autoclosure 90

4.7 柯里化(Currying) 94

4.7.1 柯里化的原因 95

4.7.2 构建库 95

4.7.3 局部应用 97

4.7.4 柯里化的成本 97

4.7.5 柯里化和回调 97

4.7.6 柯里化实践 99

4.8 将闭包传递给函数参数 100

4.9 小结 103

第5章 泛型和协议 105

5.1 详述泛型 105

5.1.1 协议 106

5.1.2 标记 107

5.1.3 类型约束 108

5.2 采用协议 108

5.2.1 声明协议 109

5.2.2 成员声明 111

5.2.3 构建基本协议 113

5.2.4 添加协议的默认实现 114

5.2.5 可选的协议要求 116

5.2.6 Swift原生的可选协议要求 116

5.3 构建泛型类型 117

5.4 泛型要求 119

5.4.1 一致性要求 119

5.4.2 秘诀:相同类型要求 120

5.4.3 泛型美化 121

5.4.4 合法的标记 122

5.4.5 匹配别名 123

5.4.6 协议别名的默认值 123

5.4.7 关联类型总结 124

5.5 扩展泛型类型 125

5.6 使用协议类型 126

5.6.1 基于协议的集合 126

5.6.2 Self要求 126

5.6.3 协议对象和Self要求 128

5.7 利用协议 129

5.8 小结 129

第6章 错误 131

6.1 冷酷无情的失败 131

6.1.1 致命错误 132

6.1.2 断言 132

6.1.3 先决条件 133

6.1.4 中断和退出 134

6.2 优雅地失败 134

6.2.1 ErrorType协议 134

6.2.2 在可选项和错误处理之间做出选择 136

6.3 Swift的错误规则 136

6.3.1 规则1:远离nil哨兵 136

6.3.2 规则2:使用throw抛出错误 138

6.3.3 规则3:使用带有可见访问的错误类型 139

6.3.4 规则4:使用throws来标记所有错误参与的方法 139

6.3.5 规则5:坚持使用rethrows 140

6.3.6 规则6:消耗错误是很重要的 141

6.3.7 规则7:终止线程的错误链 141

6.4 构建错误 143

6.4.1 良好的错误 144

6.4.2 为错误命名 144

6.5 添加字符串描述 145

6.5.1 添加原因 145

6.5.2 简化输出 146

6.5.3 扩展字符串 147

6.5.4 类型特定的错误 147

6.6 获取上下文 147

6.6.1 将字符串置于上下文中研究 148

6.6.2 将抛出类型置于上下文中研究 149

6.6.3 简化上下文 151

6.7 调用抛出函数 152

6.7.1 使用try 152

6.7.2 错误传播 153

6.7.3 使用try! 154

6.7.4 使用try? 155

6.8 为try?实现替代方法 156

6.8.1 谨慎使用结果 158

6.8.2 构建try?的打印版本 158

6.9 使用guard和defer 159

6.10 小结 160

第7章 类型 161

7.1 语言概念 161

7.1.1 引用类型和值类型 161

7.1.2 复制与回写 163

7.1.3 代数数据类型 164

7.1.4 其他术语 164

7.2 枚举 165

7.2.1 基本枚举 166

7.2.2 使用哈希值来支持区间 166

7.2.3 原始值枚举 168

7.2.4 原始值成员和序列 169

7.2.5 关联值 171

7.2.6 间接值 172

7.3 switch语句 173

7.3.1 分支 173

7.3.2 中断 174

7.3.3 fallthrough 174

7.3.4 复杂的case 176

7.3.5 元组 176

7.3.6 值绑定的模式匹配 177

7.3.7 where子句 177

7.3.8 展开可选的枚举 178

7.4 通过类型嵌入值 179

7.5 选项集 182

7.5.1 重温NS_OPTIONS 182

7.5.2 构建枚举 183

7.5.3 构建选项集 184

7.5.4 查看选项 184

7.6 类 185

7.6.1 优化 186

7.6.2 初始化器 186

7.6.3 初始化步骤 187

7.6.4 指定初始化器和便利初始化器 187

7.6.5 初始化器规则 187

7.6.6 构建便利初始化器 188

7.6.7 可失败初始化器和抛出初始化器 189

7.6.8 析构器 191

7.7 属性观察器 192

7.8 扩展和重写 194

7.9 惰性求值 196

7.9.1 惰性序列 196

7.9.2 惰性属性 196

7.10 小结 197

第8章 杂记 199

8.1 声明标签 199

8.2 自定义运算符 201

8.2.1 声明运算符 201

8.2.2 运算符的一致性 202

8.2.3 对运算符的取舍进行评估 203

8.3 数组的索引 203

8.3.1 多索引的数组访问 204

8.3.2 封装索引 206

8.3.3 数组切片 206

8.4 泛型下标 207

8.5 字符串工具 209

8.5.1 重复元素初始化器 209

8.5.2 字符串和基数 209

8.5.3 字符串区间 211

8.5.4 字符串分割 212

8.5.5 字符串下标 213

8.5.6 与Foundation的互操作 214

8.5.7 连接与扩展 214

8.6 序列生成器 215

8.7 小结 217