《Swift开发标准教程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:张明,吴琼,陈瑶主编
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2016
  • ISBN:9787115425027
  • 页数:374 页
图书介绍:本书共分为15章,主要内容包括编写Swift开发环境配置、Swift语言基础、语句和表达式、集合类型、程序控制结构、函数和闭包、类、继承、枚举和结构、构造器和析构器、扩展和协议、Swift语言的其他主题、使用Swift开发iOS应用、测试和发布APP以及打砖块游戏等内容。书中对Swift语言中的一些开发技巧进行了展示。

第1章 编写第一个Swift程序 1

1.1 初识Swift 1

1.1.1 Swift的发展 1

1.1.2 Swift的特点 1

1.1.3 Swift语言的转换 2

1.2 构建开发环境 2

1.2.1 申请苹果账号 3

1.2.2 安装Xcode 6

1.2.3 更新新组件和文档 9

1.3 编写第一个程序 11

1.3.1 创建项目 11

1.3.2 Xcode界面介绍 13

1.3.3 编译和运行 14

1.3.4 编写代码 15

1.4 Swift代码分析 15

1.4.1 代码构成 15

1.4.2 标识符 16

1.4.3 关键字 16

1.4.4 注释 17

1.5 调试 18

1.6 使用帮助文档 19

1.7 上机实践 20

第2章 Swift语言基础 21

2.1 常量变量 21

2.1.1 常量 21

2.1.2 变量 21

2.1.3 为声明的变量和常量指定数据类型 22

2.2 简单数据类型 22

2.2.1 整数 22

2.2.2 整型 23

2.2.3 浮点类型 24

2.2.4 布尔类型 25

2.2.5 可选类型 25

2.3 字面值 26

2.3.1 整型字面值 26

2.3.2 浮点类型的字面值 26

2.3.3 布尔类型的字面值 28

2.4 高级数据类型——元组 28

2.5 类型别名 29

2.6 字符和字符串 29

2.6.1 字符类型与字面值 29

2.6.2 字符串类型与字面值 30

2.6.3 初始化空字符串 31

2.6.4 字符串连接 31

2.6.5 字符计数 32

2.6.6 判断字符串 32

2.6.7 大小写转换 34

2.6.8 插入和删除 35

2.7 编码格式Unicode 37

2.7.1 什么是Unicode 37

2.7.2 字符串的Unicode表示形式 38

2.8 综合案例 40

2.8.1 为圆周率3.1 4159265359指定数据类型 40

2.8.2 组成字符串,并插入特殊符号 40

2.9 上机实践 41

第3章 语句和表达式 42

3.1 语句 42

3.2 运算符与表达式 42

3.2.1 常用术语——元 42

3.2.2 赋值运算符和表达式 43

3.2.3 算术运算符和表达式 43

3.2.4 求余运算符和表达式 46

3.2.5 自增自减运算符和表达式 47

3.2.6 一元负号运算符 49

3.2.7 一元正号运算符 50

3.2.8 位运算符 50

3.2.9 溢出运算符 55

3.2.10 比较运算符和表达式 57

3.2.11 三元条件运算符和表达式 58

3.2.12 逻辑运算符和表达式 58

3.2.13 范围运算符 61

3.2.14 复合赋值运算符和表达式 62

3.2.15 求字节运算符和表达式 63

3.2.16 强制解析 63

3.2.17 空合运算符 63

3.3 数值类型转换 64

3.3.1 整数的转换 64

3.2.2 整数和浮点数的转换 65

3.4 综合案例 66

3.4.1 水仙花数 66

3.4.2 将7489逆序输出 66

3.5 上机实践 67

第4章 集合类型 68

4.1 数组 68

4.1.1 数组字面量 68

4.1.2 数组的声明 68

4.1.3 数组的初始化 69

4.2 数组的操作 71

4.2.1 获取数组中元素个数 71

4.2.2 判断数组是否为空 71

4.2.3 在末尾添加一个元素 72

4.2.4 插入值 73

4.2.5 读取值 74

4.2.6 修改值 74

4.2.7 删除值 75

4.3 集合 76

4.3.1 集合的声明 76

4.3.2 集合的初始化 77

4.4 集合的操作 78

4.4.1 获取集合中元素个数 78

4.4.2 判断集合是否为空 78

4.4.3 判断集合中是否包含某一值 79

4.4.4 插入值 79

4.4.5 删除值 79

4.4.6 确定集合的顺序 81

4.5 集合的基本运算 81

4.5.1 a?b 81

4.5.2 a?b 82

4.5.3 a-b 83

4.5.4 a-b?b-a 83

4.6 集合间关系 84

4.6.1 相等判断 84

4.6.2 子集的判断 85

4.6.3 父集合的判断 85

4.6.4 其他判断 86

4.7 字典 86

4.7.1 字典字面量 86

4.7.2 字典的声明 87

4.7.3 字典的初始化 87

4.8 字典的操作 88

4.8.1 获取字典中的元素个数 88

4.8.2 读取键的值 88

4.8.3 添加元素 89

4.8.4 修改键关联的值 89

4.8.5 删除值 90

4.9 综合案例 91

4.9.1 求3科成绩的平均值 91

4.9.2 获取奇数月 92

4.10 上机实践 94

第5章 程序控制结构 95

5.1 顺序结构 95

5.2 选择结构——if语句 95

5.2.1 if语句 96

5.2.2 if...else语句 96

5.2.3 if...else if语句 97

5.2.4 if语句的嵌套 98

5.3 选择结构——switch语句 99

5.3.1 switch语句基本形式 99

5.3.2 switch语句的使用规则 100

5.4 循环结构——for语句 103

5.4.1 for...in循环 103

5.4.2 for-condition-increment条件循环 108

5.5 循环结构——while语句 108

5.5.1 while循环 109

5.5.2 repeat while循环 110

5.6 跳转语句 110

5.6.1 continue语句 110

5.6.2 break语句 111

5.6.3 fallthrough 112

5.7 标签语句 112

5.7.1 标签语句的定义 113

5.7.2 标签语句的使用 113

5.8 综合案例 114

5.8.1 打印九九乘法表 114

5.8.2 使用if else比较3个数值大小 115

5.8.3 计算1~100的奇数和 116

5.9 上机实践 116

第6章 函数和闭包 117

6.1 函数介绍 117

6.1.1 函数的功能 117

6.1.2 函数的形式 118

6.2 使用无参函数 118

6.2.1 无参函数的声明定义 119

6.2.2 无参函数的调用 119

6.2.3 空函数 119

6.3 使用有参函数 120

6.3.1 有参函数的声明定义 120

6.3.2 有参函数的调用 120

6.3.3 参数的注意事项 121

6.4 函数参数的特殊情况 121

6.4.1 函数参数名 122

6.4.2 指定外部参数名 122

6.4.3 忽略外部参数名 122

6.4.4 为参数设置默认值 123

6.4.5 可变参数 123

6.4.6 常量参数和变量参数 124

6.4.7 输入-输出参数 124

6.5 函数的返回值 125

6.5.1 具有一个返回值的函数 125

6.5.2 具有多个返回值的函数 126

6.5.3 可选元组返回类型 127

6.5.4 无返回值 128

6.6 函数类型 128

6.6.1 使用函数类型 129

6.6.2 使用函数类型作为参数类型 129

6.6.3 使用函数类型作为返回值类型 130

6.7 标准函数 131

6.7.1 绝对值函数abs() 131

6.7.2 最大值函数max()/最小值函数min() 132

6.7.3 序列排序函数sortInPlace() 132

6.7.4 序列倒序函数reverse() 133

6.8 函数的嵌套 133

6.8.1 嵌套调用 134

6.8.2 递归调用 135

6.9 闭包 135

6.9.1 闭包表达式 136

6.9.2 Trailing闭包 138

6.9.3 捕获值 139

6.10 综合案例 140

6.1 0.1 打印金字塔 140

6.1 0.2 猴子吃桃 141

6.11 上机实践 142

第7章 类 143

7.1 类与对象 143

7.1.1 类的组成 143

7.1.2 创建类 143

7.1.3 实例化对象 144

7.2 属性 144

7.2.1 存储属性 144

7.2.2 计算属性 146

7.2.3 类型属性 148

7.2.4 属性监视器 150

7.3 方法 152

7.3.1 实例方法 152

7.3.2 类型方法 153

7.3.3 存储属性、局部变量和全局变量的区别 155

7.3.4 局部变量和存储属性同名的解决方法——self属性 156

7.4 下标脚本 157

7.4.1 定义下标脚本 157

7.4.2 调用下标脚本 157

7.4.3 使用下标脚本 158

7.5 类的嵌套 160

7.5.1 直接嵌套 160

7.5.2 多次嵌套 161

7.6 可选链接 162

7.6.1 使用可选链接调用代替强制解析 163

7.6.2 通过可选链接调用属性、下标脚本、方法 163

7.6.3 连接多个链接 165

7.7 综合案例 166

7.7.1 收支情况 166

7.7.2 根据周长计算面积 167

7.8 上机实践 168

第8章 继承 170

8.1 为什么要使用继承 170

8.1.1 重用代码、简化代码 170

8.1.2 扩展功能 170

8.2 继承的实现 170

8.2.1 继承的定义 170

8.2.2 属性的继承 172

8.2.3 下标脚本的继承 173

8.2.4 方法的继承 174

8.3 继承的特点 174

8.3.1 多层继承 174

8.3.2 不可删除 175

8.4 重写 176

8.4.1 重写属性 176

8.4.2 重写下标脚本 178

8.4.3 重写方法 179

8.4.4 访问父类成员 180

8.4.5 阻止重写 182

8.5 类型转换 184

8.5.1 类型检查 184

8.5.2 向下转型 185

8.5.3 AnyObject和Any的类型转换 185

8.6 综合案例 187

8.7 上机实践 188

第9章 枚举和结构 189

9.1 枚举的构成 189

9.2 定义枚举 189

9.2.1 任意类型的枚举类型 189

9.2.2 指定数据类型的枚举类型 190

9.3 定义枚举的成员 190

9.3.1 定义任意类型的枚举成员 190

9.3.2 定义指定数据类型的枚举成员 191

9.3.3 定义枚举成员时的注意事项 192

9.4 实例化枚举的对象 192

9.5 枚举成员与switch匹配 192

9.6 访问枚举类型中成员的原始值 193

9.6.1 通过成员访问原始值 193

9.6.2 通过原始值访问成员 194

9.7 关联值 195

9.8 定义枚举的其他内容 195

9.8.1 定义属性 195

9.8.2 定义方法 197

9.8.3 定义下标脚本 198

9.9 递归枚举 199

9.10 结构的构成 200

9.11 结构的创建与实例化 200

9.11.1 结构的创建 200

9.11.2 结构体的实例化 200

9.12 定义结构中的内容 201

9.12.1 定义属性 201

9.12.2 定义方法 204

9.12.3 定义下标脚本 205

9.13 类、枚举、结构的区别 206

9.14 嵌套类型 206

9.15 综合案例 208

9.15.1 输出对应音符发音 208

9.15.2 根据棱长计算正方体的表面积和体积 208

9.16 上机实践 209

第10章 构造器和析构器 210

10.1 值类型的构造器 210

10.1.1 默认构造器 210

10.1.2 自定义构造器 211

10.1.3 构造器代理 214

10.2 类的构造器 216

10.2.1 默认构造器 217

10.2.2 自定义构造器 217

10.2.3 构造器代理 220

10.2.4 类的两段式构造过程 221

10.2.5 构造器的继承和重载 222

10.2.6 必要构造器 225

10.3 可失败构造器 226

10.3.1 定义可失败构造器 226

10.3.2 枚举类型的可失败构造器 227

10.3.3 类的可失败构造器 228

10.3.4 构造失败的传递 229

10.3.5 重写一个可失败构造器 230

10.3.6 可失败构造器init! 231

10.4 构造器的特殊情况 232

10.4.1 可选属性类型 232

10.4.2 修改常量属性 232

10.5 设置默认值 233

10.5.1 在定义时直接赋值 233

10.5.2 在构造器中赋值 233

10.5.3 使用闭包设置属性的默认值 234

10.5.4 使用函数设置默认值 235

10.6 析构器 235

10.6.1 理解析构器 235

10.6.2 析构器的定义 236

10.6.3 使用析构器 236

10.6.4 使用析构器的注意事项 237

10.6.5 构造器和析构器的区别 239

10.7 综合案例 239

10.7.1 游戏属性 239

10.7.2 模拟下线通知 240

10.8 上机实践 240

第11章 扩展和协议 241

11.1 扩展 241

11.1.1 扩展的定义 241

11.1.2 扩展属性 241

11.1.3 扩展构造器 243

11.1.4 扩展方法 244

11.1.5 扩展下标脚本 246

11.1.6 扩展嵌套类型 247

11.2 协议 248

11.2.1 协议的定义 248

11.2.2 协议的实现 248

11.2.3 协议的成员声明——属性 249

11.2.4 协议的成员声明——方法 251

11.2.5 协议的成员声明——可变方法 252

11.2.6 协议的成员声明——构造器 253

11.3 可选协议 254

11.3.1 定义可选协议 254

11.3.2 声明可选成员 254

11.3.3 调用可选协议 255

11.4 使用协议 256

11.4.1 协议作为常量、变量等的数据类型 256

11.4.2 协议作为返回值或参数类型 257

11.4.3 协议作为集合的元素类型 258

11.5 在扩展中使用协议 259

11.5.1 在扩展中实现协议 259

11.5.2 定义协议成员 259

11.5.3 扩展协议声明 260

11.6 协议的继承 260

11.7 协议合成 262

11.8 检查协议的一致性 263

11.9 委托 264

11.10 综合案例 267

11.11 上机实践 268

第12章 Swift语言的其他主题 269

12.1 自动引用计数 269

12.1.1 自动引用计数的工作机制 269

12.1.2 循环强引用的产生 270

12.1.3 循环强引用的解决方法 273

12.2 运算符重载 278

12.2.1 为什么使用运算符重载 278

12.2.2 算术运算符的重载 278

12.2.3 一元负号/正号运算符的重载 279

12.2.4 复合赋值运算符的重载 280

12.2.5 自增自减运算符的重载 281

12.2.6 比较运算符的重载 285

12.2.7 自定义运算符的重载 286

12.3 泛型 289

12.3.1 泛型函数 289

12.3.2 泛型类型 290

12.3.3 泛型类的层次结构 292

12.3.4 扩展一个泛型类型 294

12.3.5 具有多个类型参数的泛型 295

12.3.6 类型约束 295

12.3.7 关联类型 296

12.4 错误处理 300

12.4.1 抛出错误 300

12.4.2 捕获错误和处理错误 301

12.4.3 清理动作 302

12.5 综合案例 302

12.6 上机实践 303

第13章 使用Swift开发iOS应用 304

13.1 创建项目 304

13.2 运行程序 306

13.3 模拟器的操作 307

13.3.1 模拟器与真机的区别 307

13.3.2 退出应用程序 307

13.3.3 应用程序图标的设置 307

13.3.4 语言设置 309

13.3.5 旋转 312

13.3.6 删除应用程序 312

13.4 编辑界面 313

13.4.1 界面介绍 313

13.4.2 设计界面 314

13.4.3 视图对象库的介绍 316

13.4.4 编写代码 317

13.5 上机实践 320

第14章 测试和发布App 321

14.1 测试App概述 321

14.1.1 测试驱动的软件开发流程 321

14.1.2 iOS单元测试框架 322

14.2 使用XCTest测试框架测试驱动的软件开发案例 322

14.2.1 测试案例前期准备 322

14.2.2 添加XCTest到项目中 326

14.2.3 测试驱动的开发流程 328

14.3 发布前的准备工作 332

14.3.1 申请付费的开发者账号 332

14.3.2 申请App ID 335

14.3.3 申请证书 336

14.3.4 添加图标 343

14.3.5 调整Application Target属性 344

14.3.6 为发布进行编译 345

14.3.7 应用打包 347

14.4 进行发布 349

14.4.1 创建应用及基本信息 349

14.4.2 应用定价信息 352

14.4.3 上传应用 353

14.5 常见审核不通过的原因 357

14.6 上机实践 358

第15章 综合案例:打砖块游戏 359

15.1 功能介绍 359

15.2 界面设计 360

15.2.1 准备工作 360

15.2.2 主界面设计 361

15.2.3 游戏界面设计 362

15.2.4 游戏介绍界面设计 363

15.3 功能实现 364

15.3.1 界面之间的切换 364

15.3.2 打砖块游戏功能 368

15.4 真机测试 374