《Swift开发实战》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:管蕾,张玲玲,朱元波编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2014
  • ISBN:9787115368270
  • 页数:487 页
图书介绍:本书主要介绍了Swift的语法、语言编程基础,以及结合实例的形式,告诉读者如何应用这个新的语言,达到学以致用的目标,本书图文结合,语言通俗易懂,很适合初学者阅读和学习!引导读者进行更深入的内容学习。

第1章 工欲善其事,必先利其器—— Swift语言基础 1

1.1 Swift概述 1

1.1.1 Swift的创造者 1

1.1.2 Swift的优势 2

1.2搭建开发环境 3

1.2.1 Xcode 6介绍 3

1.2.2下载并安装Xcode 6 5

1.3使用Xcode开发环境 8

1.3.1改变公司名称 8

1.3.2通过搜索框缩小文件范围 10

1.3.3格式化代码 10

1.3.4代码缩进和自动完成 11

1.3.5文件内查找和替换 12

1.3.6快速定位到代码行 14

1.3.7快速打开文件 15

1.3.8使用书签 16

1.3.9自定义导航条 17

1.3.10使用Xcode帮助 18

1.3.11调试代码 19

1.4启动iOS 8模拟器 21

第2章 千里之行,始于足下—— Swift语言基础 24

2.1第一段Swift程序 24

2.2简单值 30

2.3流程控制 31

2.4函数和闭包 34

2.5对象和类 36

2.6枚举和结构体 38

2.7协议和扩展 40

2.8泛型 41

第3章 新语言,新特性——Swift的基础语法 43

3.1分号 43

3.2空白 43

3.3标识符和关键字 44

3.3.1标识符 44

3.3.2关键字 45

3.4常量和变量 45

3.4.1声明常量和变量 45

3.4.2声明变量 46

3.4.3输出常量和变量 49

3.4.4标注类型 50

3.4.5常量和变量的命名规则 51

3.5注释 52

3.5.1注释的规则 52

3.5.2使用注释的注意事项 53

3.6数据类型 54

3.6.1数据类型的分类 55

3.6.2类型安全和类型推断 55

3.6.3类型注解 56

3.6.4类型标识符 56

3.6.5元组类型 57

3.6.6函数类型 57

3.6.7数组类型 58

3.6.8可选类型 58

3.6.9隐式解析可选类型 59

3.6.10协议合成类型 59

3.6.11元类型 60

3.6.12类型继承子句 60

3.6.13类型推断 61

3.7最基本的数值类型 61

3.7.1整数 61

3.7.2浮点数 63

3.8字面量 64

3.8.1数值型字面量 64

3.8.2整型字面量 65

3.8.3浮点型字面量 66

3.8.4文本型字面量 67

3.9数值型类型转换 68

3.9.1整数转换 68

3.9.2整数和浮点数转换 69

3.10类型别名 70

3.11布尔值 71

3.12元组 72

3.13可选类型 73

3.13.1 if语句以及强制解析 74

3.13.2可选绑定 75

3.13.3 nil 76

3.13.4隐式解析可选类型 76

3.14断言 77

3.14.1使用断言进行调试 77

3.14.2何时使用断言 78

第4章 运算符 83

4.1运算符概述 83

4.2赋值运算符 84

4.2.1基本赋值运算符 84

4.2.2复合赋值运算符 85

4.3算术运算符 86

4.3.1一元运算符 86

4.3.2二元运算符 88

4.3.3求余运算 89

4.3.4浮点数求余计算 90

4.4比较运算符(关系运算符) 91

4.5三元条件运算 93

4.6区间运算符 94

4.6.1闭区间运算符 95

4.6.2半闭区间运算符 95

4.7逻辑运算 96

4.7.1逻辑非 97

4.7.2逻辑与 97

4.7.3逻辑或 97

4.7.4组合逻辑 98

4.7.5使用括号设置运算优先级 98

4.8位运算符 99

4.8.1按位取反运算符 99

4.8.2按位与运算符 100

4.8.3按位或运算符 101

4.8.4按位异或运算符 102

4.8.5按位左移/右移运算符 103

4.9溢出运算符 107

4.10运算符函数 110

4.10.1前置和后置运算符 110

4.10.2组合赋值运算符 111

4.10.3比较运算符 112

4.11自定义运算符 113

4.12运算符的优先级和结合性 113

第5章 字符串和字符 117

5.1字符和字符串基础 117

5.2字符串字面量 118

5.3初始化空字符串 119

5.4字符串可变性 120

5.5字符串是值类型 121

5.6字符串遍历 121

5.7计算字符数量 122

5.8连接字符串和字符 123

5.9字符串插值 125

5.10比较字符串 125

5.10.1字符串相等 125

5.10.2前缀/后缀相等 125

5.10.3大写和小写字符串 127

5.11国际标准Unicode 128

5.11.1 Unicode术语 128

5.11.2字符串的Unicode表示 128

5.11.3 UTF-8 129

5.11.4 UTF-16 129

5.11.5 Unicode标量 129

第6章 表达式 132

6.1前缀表达式 132

6.2二元表达式 132

6.3赋值表达式 134

6.4三元条件运算符 135

6.5类型转换运算符 135

6.6主表达式 136

6.6.1字符型表达式 136

6.6.2 self表达式 136

6.6.3超类表达式 137

6.6.4闭包表达式 137

6.6.5隐式成员表达式 138

6.6.6圆括号表达式 138

6.6.7通配符表达式 139

6.7后缀表达式 139

6.7.1函数调用表达式 139

6.7.2初始化函数表达式 139

6.7.3显式成员表达式 140

6.7.4后缀self表达式 140

6.7.5动态表达式 140

6.7.6下标脚本表达式 141

6.7.7强制取值表达式 141

6.7.8可选链表达式 141

第7章 集合类型 143

7.1数组 143

7.1.1定义数组 143

7.1.2数组构造语句 144

7.1.3访问和修改数组 145

7.1.4数组的遍历 148

7.1.5创建并且构造一个数组 149

7.2字典 152

7.2.1字典字面量 152

7.2.2读取和修改字典 153

7.2.3字典遍历 157

7.2.4创建一个空字典 159

7.3集合的可变性 160

第8章 语句和流程控制 163

8.1Swift语句概述 163

8.1.1循环语句 163

8.1.2分支条件语句 167

8.1.3带标签的语句 172

8.1.4控制传递语句 172

8.2for循环 173

8.2.1 for-in 173

8.2.2 for条件递增 175

8.3while循环 177

8.3.1 while 177

8.3.2 do-while 179

8.4条件语句 181

8.4.1 if语句 181

8.4.2 switch 182

8.4.3不存在隐式的贯穿 183

8.4.4区间匹配 184

8.4.5元组 185

8.4.6值绑定 185

8.4.7 where 186

8.5控制转移语句 187

8.5.1 continue 187

8.5.2 break 188

8.5.3贯穿(Fallthrough) 190

8.5.4带标签的语句(Labeled Statements) 191

第9章 函数 193

9.1函数的分类 193

9.1.1从函数定义的角度划分 193

9.1.2从是否有返回值角度划分 193

9.1.3从是否有参数角度划分 194

9.1.4库函数 194

9.2函数的定义 194

9.2.1无参函数的定义 195

9.2.2有参函数的定义 195

9.3函数声明 196

9.3.1函数声明的格式 196

9.3.2声明中的参数名 197

9.3.3声明中的特殊类型参数 199

9.4函数调用 199

9.4.1调用函数的格式 199

9.4.2函数调用的方式 201

9.5函数参数 202

9.5.1多重输入参数 202

9.5.2无参函数 203

9.5.3无返回值函数 203

9.6返回值 204

9.7函数参数的名称 205

9.7.1外部参数名 206

9.7.2简写外部参数名 206

9.7.3默认参数值 207

9.7.4默认值参数的外部参数名 207

9.7.5可变参数 208

9.7.6常量参数和变量参数 208

9.7.7输入/输出参数 209

9.8函数类型 210

9.8.1使用函数类型 211

9.8.2函数类型作为参数类型 211

9.8.3函数类型作为返回类型 213

9.9嵌套函数 214

9.10函数和闭包 215

9.11内置库函数 218

第10章 闭包 225

10.1闭包表达式 225

10.1.1 sort函数 226

10.1.2闭包表达式语法 227

10.1.3根据上下文推断类型 229

10.1.4单表达式闭包隐式返回 229

10.1.5参数名称的缩写 230

10.1.6运算符函数 230

10.2闭包的简写方式 230

10.3尾随闭包 231

10.4捕获值 234

10.5闭包是引用类型 235

第11章 枚举 237

11.1枚举基础 237

11.2枚举语法 238

11.3匹配枚举值和switch语句 240

11.4相关值 241

11.5原始值 243

第12章 类 247

12.1类和结构体基础 247

12.1.1定义类和结构体 248

12.1.2声明结构体字段 249

12.2类的成员 250

12.2.1最简单的数据成员 250

12.2.2最重要的函数成员 251

12.3结构体成员 252

12.3.1字段 252

12.3.2函数 253

12.3.3属性 253

12.4类和结构体实例 254

12.5类的继承 255

12.5.1类的层次结构 255

12.5.2继承概述 256

12.5.3定义子类 257

12.5.4重写 259

12.5.5继承规则 263

12.6属性访问 265

12.7结构体和枚举是值类型 267

12.8类是引用类型 268

12.8.1恒等运算符 269

12.8.2指针 269

12.9类和结构体的选择 269

12.10集合类型的赋值和复制行为 270

12.10.1字典类型的赋值和拷贝行为 270

12.10.2数组的赋值和复制行为 271

12.10.3确保数组的唯一性 272

12.10.4判定两个数组是否共用相同元素 272

12.10.5强制复制数组 273

第13章 构造函数和析构函数 274

13.1构造函数概述 274

13.1.1结构体中的构造函数 275

13.1.2类中的构造函数 277

13.2构造过程详解 279

13.2.1为存储型属性赋初始值 280

13.2.2定制化构造过程 281

13.2.3默认构造器 283

13.2.4值类型的构造器代理 284

13.2.5类的继承和构造过程 286

13.2.6通过闭包和函数来设置属性的默认值 293

13.3析构函数 295

13.3.1析构过程原理 295

13.3.2析构函数操作 296

13.4综合演练 298

第14章 属性 308

14.1属性的种类 308

14.2常用的声明属性 308

14.3类型属性 310

14.4存储属性 310

14.4.1常量和存储属性 311

14.4.2懒惰储存属性 311

14.4.3延迟存储属性 312

14.4.4存储属性和实例变量 313

14.5计算属性 314

14.5.1基本操作 314

14.5.2 setter声明的简略写法 314

14.5.3便捷setter声明 315

14.5.4只读计算属性 315

14.6属性监视器 318

14.7全局变量和局部变量 319

14.8类型属性 320

14.8.1类型属性语法 320

14.8.2获取和设置类型属性的值 321

第15章 方法 323

15.1实例方法 323

15.1.1方法的局部参数名称和外部参数名称 324

15.1.2 self属性 325

15.1.3在实例方法中修改值类型 326

15.1.4在变异方法中给self赋值 327

15.2类型方法 328

第16章 下标脚本 331

16.1下标脚本语法 331

16.2下标脚本用法 332

16.3下标脚本选项 333

第17章 自动引用计数 338

17.1 iOS ARC的背景 338

17.2 Swift ARC的工作机制 338

17.3自动引用计数实践 339

17.4类实例之间的循环强引用 341

17.5解决实例之间的循环强引用 345

17.5.1弱引用 345

17.5.2无主引用 351

17.5.3无主引用以及隐式解析可选属性 353

17.6闭包引起的循环强引用 358

17.7解决闭包引起的循环强引用 362

17.7.1定义捕获列表 363

17.7.2弱引用和无主引用 363

第18章 泛型 365

18.1泛型所解决的问题 365

18.2泛型函数 367

18.3类型参数 368

18.4命名类型参数 371

18.5泛型类型 371

18.6类型约束 374

18.6.1类型约束语法 374

18.6.2类型约束行为 374

18.7关联类型 376

18.7.1关联类型行为 376

18.7.2扩展一个存在的类型为一指定关联类型 378

18.8 where语句 378

第19章 可选链 380

19.1可选链可替代强制解析 380

19.2为可选链定义模型类 381

19.3通过可选链调用属性 383

19.4通过可选链调用方法 383

19.5使用可选链调用子脚本 383

19.6连接多层链接 384

19.7链接可选返回值的方法 385

第20章 类型检查和嵌套类型 386

20.1定义一个类层次作为例子 386

20.2检查类型(Checking Type) 387

20.3向下转型(Downcasting) 388

20.4 Any和AnyObject的类型转换 389

20.4.1 AnyObject类型 389

20.4.2 Any类型 390

20.5嵌套类型 391

20.5.1嵌套类型实例 391

20.5.2嵌套类型的引用 392

第21章 混编开发 393

21.1在同一个工程中使用Swift和 Objective-C 393

21.1.1 Mix and Match概述 393

21.1.2在同一个应用的target中导入 394

21.1.3在同一个框架的target中导入 395

21.1.4导入外部框架 396

21.1.5在Objective-C中使用Swift 396

21.1.6实战演练Swift与Objective-C的相互调用 397

21.2Swift调用C函数 399

21.2.1调用简单的C函数 399

21.2.2增加一个C键盘输入函数 403

21.3 Swift调用C函数的综合演练 405

第22章 扩展 409

22.1扩展语法 409

22.2计算型属性 410

22.3构造器 411

22.4扩展方法 412

22.5下标 413

22.6嵌套类型 415

22.7扩展字符串截取方法 416

22.7.1演示扩展字符串的用法 416

22.7.2使用Swift String扩展截取字符串 417

22.8在iOS项目中使用扩展 419

22.9用Swift编写UITextField扩展 430

第23章 协议 438

23.1协议的语法 438

23.2对属性的规定 440

23.3对方法的规定 441

23.4对突变方法的规定 442

23.5协议类型 443

23.6委托模式 444

23.7在扩展中添加协议成员 446

23.8通过扩展补充协议声明 447

23.9集合中的协议类型 448

23.10协议的继承 448

23.11协议合成 449

23.12检验协议的一致性 449

23.13对可选协议的规定 451

第24章 Sprite Kit游戏开发 453

24.1Sprite Kit框架基础 453

24.1.1 Sprite Kit的优点和缺点 453

24.1.2 Sprite Kit、Cocos2D、Cocos2D-X和Unity的选择 453

24.2开发一个Flappy Bird游戏 454

24.3开发一个iPad飞行游戏(基于Swift) 462

24.3.1新建工程 462

24.3.2载入有云的天空的动画 462

24.3.3实现二维飞行界面 468

24.3.4生成发射子弹视图 468

24.3.5定义敌人类 469

24.4开发一个方块游戏 471