《Swift权威指南》目录及其源代码下载

简介: 源代码目录第1章  未来的iOS开发语言Swift语言介绍 11.1  Swift语言的前世今生 11.2  Swift到底是怎样的一种语言 21.

源代码


目录


第1章  未来的iOS开发语言Swift

语言介绍 1

1.1  Swift语言的前世今生 1

1.2  Swift到底是怎样的一种语言 2

1.3  Swift开发环境搭建 5

1.4  创建Swift工程(OS X和iOS平台) 6

1.5  瞧一瞧Swift到底长啥样 8

1.6  所见即所得的Playground 11

1.7  小结 13

第2章  千里之行始于足下——Swift语言

基础 14

2.1  Swift语句和分号 14

2.2  变量和常量 15

2.2.1  定义和初始化 15

2.2.2  将变量和常量值插入

字符串中 18

2.2.3  变量和常量的命名规则 19

2.2.4  为变量和常量指定数据

类型 20

2.3  数据类型 20

2.3.1  整数类型 20

2.3.2  数制转换 22

2.3.3  浮点类型 23

2.3.4  数值的可读性 23

2.3.5  数值类型之间的转换 23

2.3.6  类型别名 24

2.3.7  布尔类型 25

2.4  字符和字符串 26

2.4.1  字符类型的常量和变量 26

2.4.2  字符串类型的常量和

变量 26

2.4.3  枚举字符串中的所有

字符 27

2.4.4  获取字符串中字符的

Unicode编码 27

2.4.5  字符串和字符的连接 28

2.4.6  在字符串中包含特殊

字符 28

2.4.7  字符串之间的比较 29

2.4.8  字符串的大小写转换 29

2.5  元组(tuples)类型 30

2.5.1  元组类型的定义 30

2.5.2  获取元组中的元素值 30

2.5.3  为元组中的元素命名 31

2.6  可选类型 31

2.7  注释 33

2.8  小结 33

第3章  万丈高楼平地起——基本

操作符 34

3.1  操作符的种类 34

3.2  赋值操作符 35

3.3  数值操作符 36

3.3.1  四则运算操作符 36

3.3.2  整数求余 37

3.3.3  浮点数求余 38

3.3.4  自增和自减 38

3.3.5  一元负号和正号 39

3.4  复合赋值操作符 39

3.5  比较操作符 39

3.6  三元条件操作符 40

3.7  区间操作符 41

3.8  逻辑操作符 42

3.8.1  逻辑非 43

3.8.2  逻辑与 43

3.8.3  逻辑或 44

3.8.4  组合逻辑 44

3.8.5  使用圆括号指定优先级 45

3.9  小结 45

第4章  此字典非彼字典——数组和

字典 46

4.1  数组(Array) 46

4.1.1  创建和初始化数组 47

4.1.2  创建空数组 48

4.1.3  创建固定长度的数组 49

4.1.4  数组的加法 49

4.1.5  获取和设置数组元素值 49

4.1.6  数组区间赋值 50

4.1.7  添加和删除数组元素 51

4.1.8  枚举数组中的所有元素 52

4.2  字典(Dictionary) 53

4.2.1  创建和初始化字典 53

4.2.2  创建空的字典 54

4.2.3  添加、修改和删除字典中的

数据 55

4.2.4  获取字典中的值 56

4.2.5  将value转换为指定的

类型值 56

4.2.6  枚举字典中的key和

value 57

4.2.7  将keys和values转换为

数组 58

4.3  小结 59

第5章  千变万化的程序——控制流 60

5.1  for循环 60

5.1.1  对区间操作符进行循环 61

5.1.2  枚举数组和字典中的

元素 62

5.1.3  枚举字符串中的所有

字符 63

5.1.4  条件增量for循环语句 63

5.2  while和do...while循环 65

5.2.1  while循环 65

5.2.2  do...while循环 66

5.3  条件语句(if和switch) 67

5.3.1  if条件语句 67

5.3.2  Switch条件语句的基本

用法 67

5.3.3  fallthrough语句 69

5.3.4  使用区间操作符进行条件

匹配 70

5.3.5  使用元组进行条件匹配 71

5.3.6  where子句 71

5.4  在控制流中使用的控制语句(continue和break) 72

5.5  可跳转的标签 74

5.6  小结 75

第6章  丰富多彩的功能——函数 76

6.1  函数的定义和调用 76

6.2  返回多值的函数 78

6.3  扩展参数 79

6.4  扩展参数和内部参数

合二为一 80

6.5  默认参数值 81

6.6  可变参数 82

6.7  常量和变量参数 82

6.8  输入输出参数 83

6.9  函数类型 83

6.10  嵌套函数 85

6.11  小结 86

第7章  代码之美的诠释——闭包 87

7.1  闭包表达式 87

7.1.1  使用闭包表达式代替

回调函数 87

7.1.2  省略参数类型 88

7.1.3  省略返回值类型 89

7.1.4  省略return语句 89

7.1.5  既然都一样,那就去掉

一个 89

7.1.6  直接给跪了!连骨架都没了 90

7.2  尾随闭包 90

7.3  捕获值 92

7.4  闭包是引用类型 94

7.5  小结 94

第8章  特殊的数据——枚举类型 95

8.1  枚举类型的语法格式 95

8.2  匹配枚举成员 96

8.3  组合枚举成员 97

8.4  设置枚举成员的原始值 99

8.5  小结 100

第9章  Swift语言的核心——类和

结构体 101

9.1  类和结构体基础 102

9.1.1  类和结构体的异同点 102

9.1.2  定义类和结构体 103

9.1.3  创建类和结构体实例 103

9.1.4  访问和设置类和结构体

成员的值 104

9.1.5  值类型和引用类型 104

9.1.6  判断两个变量或常量引用了

同一个类对象 106

9.2  属性 107

9.2.1  存储属性 107

9.2.2  惰性存储属性 108

9.2.3  可读写的计算属性 109

9.2.4  只读计算属性 111

9.2.5  属性观察器 112

9.2.6  静态属性 114

9.3  方法 116

9.3.1  实例方法 116

9.3.2  方法的局部参数名和外部

参数名 117

9.3.3  为方法的第一个参数增加

外部参数名 118

9.3.4  类型中的self 119

9.3.5  方法的变异(mutating) 120

9.3.6  类型方法 121

9.4  构造器 122

9.4.1  没有参数的构造器 122

9.4.2  构造器重载 122

9.4.3  构造器的内部参数和外部

参数 123

9.4.4  默认构造器 124

9.4.5  结构体的逐一成员构

造器 124

9.5  析构器 124

9.6  为类和结构体增加下标

(Subscript)操作 125

9.7  小结 127

第10章  容易犯错的地方——类的

 继承 128

10.1  如何继承一个父类 128

10.2  重写方法 130

10.3  重写属性 131

10.4  重写属性观察器 132

10.5  方法被重写 133

10.6  构造器在继承中的调用规则 133

10.6.1  构造器和便利构造器 134

10.6.2  指定构造器和便利

 构造器是如何继承的 136

10.6.3  为什么子类必须调用

 父类的构造器 137

10.7  小结 140

第11章  内存管理机制——ARC 141

11.1  ARC的工作原理 141

11.2  测试ARC在内存管理中所

 起到的作用 142

11.3  解决循环强引用问题 143

11.3.1  什么是循环强引用 143

11.3.2  弱引用 144

11.3.3  无主引用 146

11.4  闭包引起的循环强引用 147

11.5  小结 149

第12章  让程序不抛出异常顺畅运行——

 可选链 150

12.1  什么是可选链 150

12.2  使用可选链访问属性 151

12.3  使用可选链调用方法 152

12.4  使用可选链调用下标 152

12.5  多层连续使用可选链 154

12.6  对方法返回值执行可选链 155

12.7  小结 156

第13章  Swift语言的摩法——类型

 转换 157

13.1  类型转换概述 157

13.2  类型检测 158

13.3  类型强行转换 159

13.4  AnyObject和Any的类型转换 160

13.4.1  AnyObject类型 160

13.4.2  Any类型 161

13.5  小结 163

第14章  为程序增添无限动力——

 扩展 164

14.1  什么是扩展 164

14.2  扩展语法 165

14.3  扩展计算型属性 165

14.4  扩展构造器 166

14.5  扩展方法 167

14.6  修改实例方法 168

14.7  扩展下标 168

14.8  扩展嵌套类型 169

14.9  小结 170

第15章  开发大型程序必备无素——

 协议 171

15.1  协议的语法 171

15.2  协议中的成员 172

15.2.1  属性 172

15.2.2  方法 174

15.2.3  突变方法 176

15.3  协议类型 176

15.4  委托(Delegate) 177

15.5  在扩展中添加成员 180

15.6  通过扩展补充协议声明 181

15.7  集合中的协议类型 182

15.8  继承协议 182

15.9  协议合成 183

15.10  校验协议的一致性 184

15.11  可选协议的约定 186

15.12  小结 189

第16章  增强代码的灵活性——泛型 190

16.1  泛型解决的问题 190

16.1.1  引出问题 190

16.1.2  泛型函数 192

16.2  类型参数 193

16.3  泛型类型 194

16.4  扩展泛型类型 197

16.5  类型约束 197

16.5.1  类型约束语法 198

16.5.2  类型约束行为 198

16.6  关联类型 200

16.6.1  关联类型行为 200

16.6.2  扩展一个存在的类型为

 一指定关联类型 202

16.7  Where语句 203

16.8  小结 205

第17章  私人定制—高级操作符 206

17.1  位操作符 206

17.1.1  按位取反操作符 207

17.1.2  按位与操作符 207

17.1.3  按位或操作符 208

17.1.4  按位异或操作符 208

17.1.5  按位左移/右移操作符 209

17.2  溢出操作符 212

17.2.1  值的上溢出 212

17.2.2  值的下溢出 213

17.2.3  除零溢出 214

17.3  优先级和结合性 214

17.4  操作符函数 215

17.4.1  二元操作符函数 215

17.4.2  前置和后置操作符

 函数 217

17.4.3  组合赋值操作符函数 217

17.4.4  等值操作符函数 218

17.4.5  定制操作符 219

17.4.6  自定义中置操作符的

 优先级和结合性 219

17.5  小结 220

第18章  做未来的iOS程序员——Swift

 开发iOS应用技术 221

18.1  创建iOS工程 221

18.2  iOS工程概述 223

18.2.1  应用程序代理 224

18.2.2  视图控制器 225

18.2.3  故事板 225

18.2.4  图像集合 226

18.3  运行iOS应用 226

18.4  实现一个可以浏览Web页面的程序 227

18.4.1  调整故事板的大小 227

18.4.2 在故事板中设计UI 229

18.4.3  UI与视图控制器关联 229

18.4.4  浏览网页 231

18.4.5  改变视图控制器 232

18.5  小结 233

第19章  开启游戏开发之旅SpriteKit

 游戏引擎 234

19.1  创建游戏工程 234

19.2  游戏工程的结构 235

19.3  运行游戏工程 236

19.4  默认游戏工程原理解析 237

19.4.1  游戏的入口点 237

19.4.2  创建初始化 238

19.4.3  捕捉屏幕的触摸动作 239

19.5  小结 240

第20章  综合应用实战——游戏项目

 Flappybird开发 241

20.1  游戏效果演示 241

20.2  添加游戏资源 242

20.3  游戏的初始化 242

20.4  创建一对管道 246

20.5  通过触摸屏幕让小鸟跳起 248

20.6  用物理引擎进行碰撞检测 248

20.7  小结 250


目录
相关文章
|
7月前
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
435 2
|
5月前
|
Unix 调度 Swift
苹果iOS新手开发之Swift 中获取时间戳有哪些方式?
在Swift中获取时间戳有四种常见方式:1) 使用`Date`对象获取秒级或毫秒级时间戳;2) 通过`CFAbsoluteTimeGetCurrent`获取Core Foundation的秒数,需转换为Unix时间戳;3) 使用`DispatchTime.now()`获取纳秒级精度的调度时间点;4) `ProcessInfo`提供设备启动后的秒数,不表示绝对时间。不同方法适用于不同的精度和场景需求。
187 3
|
1月前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
33 2
|
1月前
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户点击按钮时,按钮将从圆形变为椭圆形,颜色从蓝色渐变到绿色;释放按钮时,动画以相反方式恢复。通过UIView的动画方法和弹簧动画效果,实现平滑自然的过渡。
60 1
|
2月前
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
【10月更文挑战第18天】本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户按下按钮时,按钮将从圆形变为椭圆形并从蓝色渐变为绿色;释放按钮时,动画恢复原状。通过UIView的动画方法和弹簧动画效果,实现平滑自然的动画过渡。
63 5
|
4月前
|
存储 移动开发 Swift
使用Swift进行iOS应用开发:探索现代移动开发的魅力
【8月更文挑战第12天】使用Swift进行iOS应用开发,不仅能够享受到Swift语言带来的简洁、快速、安全的编程体验,还能够充分利用iOS平台提供的丰富资源和强大功能。然而,iOS应用开发并非易事,需要开发者具备扎实的编程基础、丰富的实践经验和不断学习的精神。希望本文能够为您的iOS应用开发之旅提供一些有益的参考和帮助。
|
5月前
|
Swift iOS开发 Kotlin
苹果iOS新手开发之Swift中实现类似Kotlin的作用域函数
Swift可通过扩展实现类似Kotlin作用域函数效果。如自定义`let`, `run`, `with`, `apply`, `also`,增强代码可读性和简洁性。虽无直接内置支持,但利用Swift特性可达成相似功能。
79 7
|
5月前
|
调度 Swift Android开发
苹果iOS新手开发之Swift中的并发任务和消息机制
Swift的消息机制类似Android的Handler,实现任务调度有三种方式: 1. **Grand Central Dispatch (GCD)**:使用`DispatchQueue`在主线程或后台线程执行任务。 2. **OperationQueue**:提供高级接口管理`Operation`对象。 3. **RunLoop**:处理事件如输入源、计时器,类似Android的`Looper`和`Handler`。 **示例**: - GCD:在不同线程执行代码块。 - OperationQueue:创建操作并执行。 - RunLoop:用Timer添加到RunLoop中。
110 2
|
5月前
|
安全 编译器 Swift
探索iOS开发:Swift语言的现代魔法
【7月更文挑战第11天】本文深入探讨了Swift编程语言,它如何革新iOS开发领域,以及它为开发者带来的独特优势。我们将从Swift的基础语法出发,通过实际案例分析其性能优化技巧,最后讨论Swift在跨平台开发中的潜力。文章旨在为读者提供一个全面而深入的视角,了解Swift不仅仅是一门语言,更是一种推动创新的力量。
|
7月前
|
设计模式 前端开发 Swift
使用Swift进行iOS应用开发:深入探索与最佳实践
【5月更文挑战第24天】探索Swift在iOS开发中的深度应用与最佳实践。Swift以其简洁语法、类型安全、面向对象、高性能及与Objective-C的互操作性脱颖而出。使用Xcode设置开发环境,学习Swift语法,创建并设计项目,编写业务逻辑,同时进行调试和测试。遵循MVC模式,利用SwiftUI、并发特性,并注重内存管理,持续学习新工具和技术,以实现高质量应用开发。