第一部分 基础篇
         第1章 准备开始  2
         1.1 本书学习路线图  2
         1.2 本书中的约定  3
         1.2.1 示例代码约定  4
         1.2.2 图示的约定  4
         1.3 Xcode开发工具  6
         1.3.1 Xcode安装和卸载  7
         1.3.2 Xcode界面  10
         1.4 如何使用API帮助  11
         1.5 本章小结  14
         1.6 同步练习  14
         第2章 第一个Swift程序  15
         2.1 使用Playground编写  15
         2.1.1 编程利器Playground  15
         2.1.2 编写HelloWorld程序  16
         2.2 代码解释  20
         2.3 本章小结  20
         2.4 同步练习  20
         第3章 Swift基本语法  21
         3.1 标识符和关键字  21
         3.1.1 标识符  21
         3.1.2 关键字  22
         3.2 常量和变量  22
         3.2.1 常量  22
         3.2.2 变量  23
         3.2.3 命名规范  23
         3.3 注释  24
         3.4 表达式  25
         3.5 本章小结  26
         3.6 同步练习  26
         第4章 基本运算符  28
         4.1 算术运算符  28
         4.1.1 一元运算符  28
         4.1.2 二元运算符  29
         4.1.3 算术赋值运算符  30
         4.2 关系运算符  31
         4.3 逻辑运算符  33
         4.4 位运算符  34
         4.5 其他运算符  36
         4.6 本章小结  37
         4.7 同步练习  37
         第5章 基本数据类型  39
         5.1 Swift数据类型  39
         5.2 整型  39
         5.3 浮点型  41
         5.4 数字表示方式  41
         5.4.1 进制数字表示  41
         5.4.2 指数表示  42
         5.4.3 其他表示  42
         5.5 数字类型之间的转换  42
         5.5.1 整型之间的转换  42
         5.5.2 整型与浮点型之间的转换  43
         5.6 布尔型  44
         5.7 元组类型  44
         5.8 本章小结  45
         5.9 同步练习  45
         第6章 字符和字符串  47
         6.1 字符  47
         6.1.1 Unicode编码  47
         6.1.2 转义符  48
         6.2 创建字符串  49
         6.3 字符串可变性  49
         6.4 字符串比较  50
         6.4.1 大小和相等比较  50
         6.4.2 前缀和后缀比较  51
         6.5 本章小结  52
         6.6 同步练习  52
         第7章 控制语句  53
         7.1 分支语句  53
         7.1.1 条件语句if  53
         7.1.2 多分支语句switch  55
         7.1.3 在switch中使用范围匹配  57
         7.1.4 在switch中比较元组类型  58
         7.2 循环语句  60
         7.2.1 while语句  60
         7.2.2 do while语句  62
         7.2.3 for语句  62
         7.2.4 for in语句  63
         7.3 跳转语句  64
         7.3.1 break语句  65
         7.3.2 continue语句  66
         7.3.3 fallthrough语句  68
         7.4 本章小结  70
         7.5 同步练习  70
         第8章 集合  74
         8.1 数组集合  74
         8.1.1 数组声明与初始化  75
         8.1.2 数组的修改  76
         8.1.3 数组遍历  77
         8.2 字典集合  77
         8.2.1 字典声明与初始化  78
         8.2.2 字典的修改  79
         8.2.3 字典遍历  80
         8.3 集合的复制  81
         8.3.1 字典复制  81
         8.3.2 数组复制  83
         8.4 本章小结  85
         8.5 同步练习  85
         第9章 函数  87
         9.1 使用函数  87
         9.2 传递参数  88
         9.2.1 使用外部参数名  88
         9.2.2 参数默认值  89
         9.2.3 可变参数  89
         9.2.4 参数的传递引用  90
         9.3 函数返回值  91
         9.3.1 无返回值函数  91
         9.3.2 多返回值函数  92
         9.4 函数类型  92
         9.4.1 作为函数返回类型使用  93
         9.4.2 作为参数类型使用  94
         9.5 函数重载  95
         9.6 嵌套函数  96
         9.7 泛型和泛型函数  97
         9.7.1 一个问题的思考  98
         9.7.2 泛型函数  98
         9.8 本章小结  99
         9.9 同步练习  99
         第10章 闭包  103
         10.1 回顾嵌套函数  103
         10.2 闭包的概念  104
         10.3 使用闭包表达式  105
         10.3.1 类型推断简化  105
         10.3.2 隐藏return关键字  106
         10.3.3 缩写参数名称  106
         10.3.4 使用闭包返回值  107
         10.4 使用尾随闭包  107
         10.5 捕获上下文中的变量和常量  108
         10.6 本章小结  109
         10.7 同步练习  109
         第二部分 面向对象篇
         第11章 Swift语言中的面向对象特性  112
         11.1 面向对象概念和基本特征  112
         11.2 Swift中的面向对象类型  112
         11.3 枚举  113
         11.3.1 成员值  113
         11.3.2 原始值  115
         11.3.3 相关值  116
         11.4 结构体与类  118
         11.4.1 类和结构体定义  118
         11.4.2 再谈值类型和引用类型  119
         11.4.3 引用类型的比较  121
         11.5 类型嵌套  122
         11.6 可选类型与可选链  123
         11.6.1 可选类型  123
         11.6.2 可选链  124
         11.7 访问限定  127
         11.7.1 访问范围  127
         11.7.2 访问级别  129
         11.7.3 使用访问级别最佳实践  130
         11.8 本章小结  133
         11.9 同步练习  133
         第12章 属性与下标  137
         12.1 存储属性  137
         12.1.1 存储属性概念  137
         12.1.2 延迟存储属性  138
         12.1.3 属性观察者  139
         12.2 计算属性  139
         12.2.1 计算属性概念  139
         12.2.2 只读计算属性  141
         12.2.3 结构体和枚举中的计算属性  142
         12.3 属性观察者  142
         12.4 静态属性  144
         12.4.1 结构体静态属性  146
         12.4.2 枚举静态属性  147
         12.4.3 类静态属性  148
         12.5 使用下标  148
         12.5.1 下标概念  149
         12.5.2 示例:二维数组  149
         12.6 本章小结  151
         12.7 同步练习  151
         第13章 方法  153
         13.1 实例方法  153
         13.1.1 使用规范的命名  154
         13.1.2 结构体和枚举方法变异  157
         13.2 静态方法  158
         13.2.1 结构体中静态方法  158
         13.2.2 枚举中静态方法  159
         13.2.3 类中静态方法  159
         13.3 本章小结  160
         13.4 同步练习  160
         第14章 构造与析构  161
         14.1 构造器  161
         14.1.1 默认构造器  161
         14.1.2 构造器与存储属性初始化  162
         14.1.3 使用外部参数名  163
         14.2 构造器重载  165
         14.2.1 构造器重载概念  165
         14.2.2 值类型构造器代理  166
         14.2.3 引用类型构造器横向代理  167
         14.3 析构器  168
         14.4 本章小结  173
         14.5 同步练习  173
         第15章 继承  175
         15.1 从一个示例开始  175
         15.2 构造器继承  176
         15.2.1 构造器调用规则  176
         15.2.2 构造过程安全检查  178
         15.2.3 构造器继承  180
         15.3 重写  182
         15.3.1 属性重写  182
         15.3.2 方法重写  185
         15.3.3 下标重写  186
         15.3.4 使用final关键字  187
         15.4 类型检查与转换  189
         15.4.1 使用is操作符  190
         15.4.2 使用as操作符  191
         15.4.3 使用Any和AnyObject类型  192
         15.5 本章小结  193
         15.6 同步练习  193
         第16章 扩展和协议  195
         16.1 扩展  195
         16.1.1 声明扩展  195
         16.1.2 扩展计算属性  196
         16.1.3 扩展方法  197
         16.1.4 扩展构造器  198
         16.1.5 扩展下标  200
         16.2 协议  201
         16.2.1 声明和遵守协议  202
         16.2.2 协议方法  202
         16.2.3 协议属性  205
         16.2.4 把协议作为类型使用  207
         16.2.5 协议的继承  209
         16.2.6 协议的合成  210
         16.3 扩展中声明协议  212
         16.4 本章小结  212
         16.5 同步练习  213
         第17章 Swift内存管理  215
         17.1 Swift内存管理概述  215
         17.1.1 引用计数  215
         17.1.2 示例:Swift自动引用计数  216
         17.2 强引用循环  218
         17.3 打破强引用循环  221
         17.3.1 弱引用  221
         17.3.2 无主引用  223
         17.4 闭包中的强引用循环  225
         17.4.1 一个闭包中的强引用循环示例  226
         17.4.2 解决闭包强引用循环  226
         17.5 本章小结  228
         17.6 同步练习  228
         第三部分 过渡篇
         第18章 从Objective-C到Swift  232
         18.1 选择语言  232
         18.2 Swift调用Objective-C  232
         18.2.1 创建Swift的iOS工程  233
         18.2.2 在Swift工程中添加Objective-C类  234
         18.2.3 调用代码  235
         18.3 Objective-C调用Swift  236
         18.3.1 创建Objective-C的iOS工程  236
         18.3.2 在Objective-C工程中添加Swift类  238
         18.3.3 调用代码  240
         18.4 本章小结  241
         18.5 同步练习  241
         第19章 使用Foundation框架  243
         19.1 数字类NSNumber  243
         19.1.1 获得NSNumber实例  243
         19.1.2 NSNumber对象的比较  246
         19.2 字符串类  247
         19.2.1 NSString类  247
         19.2.2 NSMutableString类  250
         19.2.3 NSString与String之间的关系  251
         19.3 数组类  252
         19.3.1 NSArray类  252
         19.3.2 NSMutableArray类  253
         19.3.3 NSArray与Array之间的关系  254
         19.4 字典类  255
         19.4.1 NSDictionary类  255
         19.4.2 NSMutableDictionary类  256
         19.4.3 NSDictionary与Dictionary之间的关系  257
         19.5 本章小结  258
         19.6 同步练习  258
         第四部分 实战篇
         第20章 iOS开发基础  260
         20.1 iOS介绍  260
         20.2 第一个iOS应用HelloWorld  261
         20.2.1 创建工程  261
         20.2.2 Xcode中的iOS工程模板  268
         20.2.3 程序剖析  269
         20.3 iOS API简介  271
         20.4 本章小结  272
         20.5 同步练习  272
         第21章 项目实战——基于分层架构的多版本iPhone计算器  273
         21.1 应用分析与设计  273
         21.1.1 应用概述  273
         21.1.2 需求分析  273
         21.1.3 原型设计  274
         21.1.4 分层架构设计  275
         21.1.5 应用设计  276
         21.2 创建工程  277
         21.3 业务逻辑层开发  279
         21.3.1 创建CalcLogic.swift文件  279
         21.3.2 枚举类型Operator  280
         21.3.3 CalcLogic类中属性  281
         21.3.4 CalcLogic类中构造器和析构器  281
         21.3.5 CalcLogic类中更新主标签方法  282
         21.3.6 CalcLogic类中判断是否包含小数点方法  283
         21.3.7 CalcLogic类中计算方法  283
         21.3.8 CalcLogic类中清除方法  284
         21.4 表示层开发  285
         21.4.1 添加图片资源  285
         21.4.2 改变设计界面大小  287
         21.4.3 添加计算器背景  287
         21.4.4 在设计界面中添加主标签  289
         21.4.5 在设计界面中添加按钮  291
         21.4.6 控件的输出口和动作  295
         21.4.7 视图控制器  299
         21.5 Objective-C版本的计算器  300
         21.5.1 Xcode工程文件结构比较  300
         21.5.2 表示层比较  301
         21.5.3 业务逻辑层比较  302
         21.6 Swift调用Objective-C实现的计算器  305
         21.6.1 在Swift工程中添加Objective-C类  306
         21.6.2 调用代码  308
         21.7 Objective-C调用Swift实现的计算器  309
         21.7.1 在Objective-C工程中添加Swift类  309
         21.7.2 调用代码  310
         21.8 本章小结  313
         21.9 同步练习  313
      · · · · · ·     (
收起)