编辑推荐
讲述新的Swift3版本语言。
结合iOS10,实例新颖。
基于Xcode8编写,通过大量通俗易懂的案例全面讲解了Swift语言开发的相关内容。
扫描书中二维码,可观看《Swift 3开发指南》配套视频。
内容简介
《Swift 3开发指南》是基于Xcode8编写而成的,通过大量通俗易懂的案例全面讲解了Swift语言开发的相关内容。书中包含常量与变量、基本数据类型,以及Swift语言中的新数据类型—元组型和可选型的内容。同时,《Swift 3开发指南》中还讲解了运算符和表达式、流程控制语句、字符和字符串、collection类型、函数和闭包。此外,Swift面向对象的枚举、结构体、类,以及内存管理、协议与抽象类型、错误处理、链式编程等内容《Swift 3开发指南》也有所涉及。《Swift 3开发指南》zui后的两章讲解了实战项目开发的内容,供读者学以致用。
《Swift 3开发指南》适合iOS开发者、其他移动开发平台开发者,或者有兴趣从事iOS开发的读者阅读,也适合作为大专院校计算机专业的师生用书和培训学校的教材。
作者简介
博为峰51Code教研组
51Code是中国较前沿的IT就业实训品pai,隶属于博为峰公司(中国软件人才培训境内上市第1股,股票代码:836392),总部位于上海,在北京、深圳、成都、南京、西安、武汉等主要一、二线城市设有分支机构。51Code致力于培养you秀、紧缺的复合型软件开发人才,由众多专家、名师和大咖组成的教研师资团队,不仅率先在国内践行“全栈开发工程师”培养,还同步研发出业内领先的“贯穿式”课程体系、创造出“翻转”课堂模式,大幅度提升了学员实战应用能力,满足了IT企业对高端人才的岗位需求。
博为峰51Code教研组是博为峰教育旗下的软件开发方向的教研组,专门从事软件开发的新技术调研,新课程研发。
目录
第一部分 基础语法篇1
第1章 HelloSwift3
1.1 Swift简介3
1.1.1 Swift语言简介3
1.1.2 Swift语言开发平台3
1.1.3 Swift语言开发工具3
1.1.4 Swift语言开发文档5
1.2 Swift语言编程体验7
1.2.1 Hello,51Code程序7
1.2.2 演练利器Playground9
1.3 本章小结11
1.4 思考练习11
第2章 变量和基本数据类型12
2.1 Swift语言基础语法12
2.1.1 标识符12
2.1.2 关键字12
2.1.3 表达式13
2.1.4 语句13
2.2 常量和变量14
2.2.1 常量14
2.2.2 变量15
2.3 数据类型15
2.3.1 布尔型15
2.3.2 整型16
2.3.3 浮点型17
2.3.4 字符串型18
2.3.5 数据类型的转换18
2.3.6 元组型20
2.3.7 可选型21
2.4 本章小结23
2.5 思考练习23
第3章 常见运算符和表达式24
3.1 算术运算符24
3.2 赋值运算符24
3.3 关系运算符25
3.4 逻辑运算符25
3.5 三元运算符25
3.6 NilCoalescing运算符26
3.7 复合表达式26
3.8 本章小结27
3.9 思考练习27
第4章 流程控制语句28
4.1 循环语句28
4.1.1 for-in语句28
4.1.2 while语句29
4.1.3 repeate-while语句30
4.2 分支语句30
4.2.1 if语句30
4.2.2 switch语句32
4.2.3 在switch语句中使用范围
匹配34
4.2.4 在switch语句中比较元
组型34
4.3 控制转移语句35
4.3.1 continue语句35
4.3.2 break语句37
4.3.3 fallthrough语句38
4.4 流程嵌套38
4.5 本章小结39
4.6 思考练习39
第5章 字符和字符串40
5.1 Swift语言中的字符40
5.2 字符串常见操作41
5.2.1 字符串长度41
5.2.2 字符串比较41
5.2.3 字符串前缀和后缀判断42
5.2.4 字符串的字符大小写转换42
5.2.5 字符串插入43
5.2.6 字符串添加43
5.2.7 字符串删除43
5.2.8 字符串提取44
5.2.9 字符串替换45
5.2.10 遍历字符串45
5.3 String与NSString关系46
5.4 本章小结47
5.5 思考练习47
第6章 Collection类型48
6.1 数组48
6.1.1 数组的创建48
6.1.2 数组的访问49
6.1.3 数组的编辑51
6.1.4 数组的复制52
6.1.5 Array与NSArray的
关系53
6.2 字典53
6.2.1 字典的创建53
6.2.2 字典的访问54
6.2.3 字典的编辑55
6.2.4 字典的复制57
6.2.5 Dictionary与NSDictionary
的关系57
6.3 集合58
6.3.1 集合的创建58
6.3.2 集合的访问58
6.3.3 集合的编辑59
6.3.4 集合的关系60
6.4 本章小结61
6.5 思考练习61
第7章 函数和闭包62
7.1 函数的声明和调用62
7.2 函数参数63
7.2.1 无参函数63
7.2.2 含参函数63
7.2.3 函数参数标签和参数名63
7.2.4 参数默认值64
7.2.5 可变参数65
7.2.6 参数的传递引用65
7.3 函数返回值66
7.3.1 无返回值函数66
7.3.2 有返回值函数67
7.4 函数类型68
7.4.1 作为参数类型使用68
7.4.2 作为返回值类型使用69
7.5 内嵌函数69
7.6 泛型和泛型函数70
7.6.1 泛型要解决的问题70
7.6.2 泛型函数70
7.7 闭包的概念71
7.8 闭包表达式73
7.8.1 类型推断简化73
7.8.2 省略return关键字74
7.8.3 使用位置参数简化闭包
书写75
7.8.4 使用闭包返回值76
7.9 尾随闭包76
7.10 捕获上下文的常量和变量77
7.11 逃逸闭包78
7.12 自动闭包79
7.13 本章小结80
7.14 思考练习80
第二部分 面向对象篇81
第8章 枚举83
8.1 Swift的面向对象83
8.2 枚举类型84
8.2.1 枚举定义84
8.2.2 枚举的方法84
8.3 值枚举86
8.3.1 成员值86
8.3.2 原始值87
8.3.3 哈希值88
8.4 类型枚举89
8.5 本章小结90
8.6 思考练习90
第9章 结构体91
9.1 结构体的定义91
9.2 结构体属性91
9.2.1 实例属性92
9.2.2 懒加载实例属性92
9.2.3 计算属性93
9.2.4 静态属性94
9.3 结构体的属性监听95
9.4 结构体的方法96
9.4.1 实例方法97
9.4.2 静态方法97
9.5 下标98
9.6 结构体的构造器99
9.6.1 默认构造器99
9.6.2 构造器参数100
9.6.3 指定构造器和便利构造器101
9.7 结构体嵌套102
9.8 可选链102
9.9 扩展104
9.9.1 声明扩展105
9.9.2 扩展计算属性105
9.9.3 扩展方法106
9.9.4 扩展构造器107
9.10 本章小结107
9.11 思考练习107
第10章 类108
10.1 类和结构体的区别108
10.2 类的属性110
10.2.1 实例属性111
10.2.2 懒加载实例属性111
10.2.3 计算属性111
10.2.4 类的属性监听112
10.2.5 类的静态属性113
10.3 类的方法113
10.3.1 类的实例方法114
10.3.2 类的静态方法114
10.4 类的继承和多态115
10.4.1 类的继承115
10.4.2 类的重写116
10.4.3 类的重载119
10.5 类的构造和析构120
10.5.1 类的构造120
10.5.2 类的析构123
10.6 类的类型检测和转换123
10.6.1 类型检测124
10.6.2 类型转换125
10.6.3 Any和AnyObject转换126
10.7 类对象的内存管理127
10.7.1 内存管理概述127
10.7.2 强引用循环128
10.7.3 打破强引用循环129
10.7.4 闭包中的强引用循环132
10.8 本章小结134
10.9 思考练习134
第11章 协议与抽象类型135
11.1 协议135
11.1.1 声明和遵守协议135
11.1.2 协议属性136
11.1.3 协议方法137
11.2 抽象类型139
11.3 扩展中声明协议141
11.4 本章小结142
11.5 思考练习142
第三部分 错误处理篇143
第12章 错误处理145
12.1 错误抛出145
12.2 错误的捕捉和处理147
12.3 错误与可选值148
12.4 拦截错误传导148
12.5 收尾操作148
12.6 本章小结149
12.7 思考练习149
第四部分 Swift与Objective-C对比篇151
第13章 Swift与Objective-C153
13.1 Swift与Objective-C对比153
13.2 Swift工程中调用Objective-C153
13.3 本章小结155
13.4 思考练习155
第14章 链式编程156
14.1 链式编程156
14.2 链式编程的应用157
14.3 本章小结159
14.4 思考练习159
第五部分 项目实战篇161
第15章 Swift项目实战——汽车商城163
15.1 项目需求分析163
15.1.1 项目功能需求163
15.1.2 项目界面设计164
15.2 项目架构搭建165
15.2.1 架构设计165
15.2.2 创建项目165
15.2.3 搭建架构167
15.3 业务逻辑实现168
15.3.1 启动页模块169
15.3.2 首页模块171
15.3.3 地图模块181
15.3.4 发现模块184
15.4 本章小结195
15.5 思考练习196
第16章 iOS应用开发的测试197
16.1 iOS测试框架197
16.2 XCTest测试框架197
16.2.1 添加XCTest测试框架197
16.2.2 XCTest测试方法200
16.3 使用XCTest进行测试201
16.3.1 常用测试工具201
16.3.2 单元测试202
16.3.3 UI测试203
16.4 本章小结204
16.5 思考练习204
附录205