●部分 Swift语言基础语法
章 学习环境的搭建3
1.1 申请个人AppleID账号3
1.2 与安装Xcode开发工具4
1.3 Xcode开发工具简介5
1.4 使用Playground进行Swift代码演练9
第2章 量值与基本数据类型10
2.1 变量与常量11
2.1.1 变量与常量的定义和使用11
2.1.2 变量和常量的命名规范12
2.2 关于注释13
2.3 初识基本数据类型14
2.3.1 数学进制与计算机存储原理14
2.3.2 整型数据15
2.3.3 浮点型数据16
2.3.4 布尔型数据16
2.4 两种特殊的基本数据类型16
2.4.1 组17
2.4.2 可选值类型18
2.5 为类型取别名20
2.6 练习及解析20
2.7 模拟面试21
第3章 字符、字符串与集合类型23
3.1 字符串类型24
3.1.1 进行字符串的构造24
3.1.2 字符串的组合25
3.2 字符类型25
3.2.1 字符类型简介25
3.2.2 转义字符26
3.3 字符串类型中的常用方法27
3.4 集合类型29
3.4.1 Array数组类型30
3.4.2 Set集合类型33
3.4.3 Dictionary字典类型35
3.5 练习及解析37
3.6 模拟面试40
第4章 基本运算符与程序流程控制42
4.1 初识运算符43
4.1.1 赋值运算符43
4.1.2 基本算术运算符43
4.1.3 基本逻辑运算符44
4.1.4 比较运算符45
4.1.5 条件运算符46
4.2 Swift语言中两种特殊的运算符46
4.2.1 空合并运算符46
4.2.2 区间运算符47
4.3 循环结构48
4.3.1 for-in循环结构48
4.3.2 while与repeat-while条件循环结构49
4.4 条件选择与多分支选择结构50
4.4.1 if与if-else条件选择结构50
4.4.2 switch-case多分支选择结构51
4.5 Swift语言中的流程跳转语句54
4.6 练习及解析57
4.7 模拟面试60
第5章 函数与闭包技术62
5.1 函数的基本应用63
5.1.1 函数的创建与调用63
5.1.2 关于函数的参数名64
5.1.3 函数中参数的默认值、不定数量参数与inout类型参数66
5.2 函数的类型与函数嵌套67
5.3 理解闭包结构69
5.3.1 闭包的语法结构69
5.3.2 通过实现一个排序函数来深入理解闭包70
5.4 将闭包作为参数传递时的写法优化72
5.5 后置闭包、逃逸闭包与自动闭包73
5.6 练习及解析74
5.7 模拟面试78
第6章 不错运算符与枚举79
6.1 位运算符与溢出运算符80
6.1.1 位运算符的应用80
6.1.2 溢出运算符81
6.2 运算符的重载与自定义82
6.2.1 重载运算符82
6.2.2 自定义运算符84
6.3 运算符的优先级与结合性85
6.4 枚举类型的创建与应用87
6.5 枚举的原始值与相关值88
6.5.1 枚举的原始值88
6.5.2 枚举的相关值89
6.5.3 递归枚举91
6.6 练习及解析93
6.7 模拟面试95
第7章 类与结构体96
7.1 类与结构体的定义96
7.1.1 结构体97
7.1.2 类98
7.2 设计一个交通工具类100
7.3 开发中类与结构体的应用场景102
7.4 练习及解析103
7.5 模拟面试105
第8章 属性与方法107
8.1 存储属性与计算属性108
8.1.1 存储属性的意义及应用108
8.1.2 计算属性的意义及应用110
8.2 属性112
8.3 实例属性与类属性113
8.4 实例方法与类方法114
8.4.1 实例方法的意义与应用114
8.4.2 类方法116
8.5 下标方法117
8.6 练习及解析118
8.7 模拟面试119
第9章 构造方法与析构方法121
9.1 构造方法的设计与使用121
9.2 指定构造方法与便利构造方法124
9.3 构造方法的继承关系126
9.4 构造方法的安全性检查128
9.5 可失败构造方法与必要构造方法129
9.6 析构方法130
9.7 练习与解析130
9.8 模拟面试132
0章 内存管理与异常处理133
10.1 自动引用计数134
10.2 循环引用及其解决方法136
10.3 闭包中的循环引用141
10.4 异常的抛出与传递142
10.5 异常的捕获与处理143
10.6 延时执行结构144
10.7 练习与解析145
10.8 模拟面试146
1章 类型转换、泛型、扩展与协议147
11.1 类型检查与转换148
11.1.1 Swift语言中的类型检查148
11.1.2 Swift语言中的类型转换149
11.2 Any与AnyObject类型150
11.3 泛型151
11.3.1 初识泛型151
11.3.2 对泛型进行约束153
11.4 扩展与协议155
11.4.1 使用扩展对已经存在的数据类型进行补充155
11.4.2 协议的特点与应用157
11.4.3 协议与扩展的结合160
11.5 模拟面试160
2章 Swift 4特性指南162
12.1 内存安全检查(独占访问权限)162
12.2 关联类型可以添加where约束子句165
12.3 增强字符串和区间运算符的功能165
12.4 泛型与协议功能的增强166
12.5 模拟面试168
第2部分 iOS开发基础
3章 UI控件与逻辑交互(1)171
13.1 iOS项目工程简介172
13.1.1 创建iOS项目工程172
13.1.2 运行个iOS程序173
13.2 标签控件——UILabel175
13.2.1 使用代码创建一个UILabel控件175
13.2.2 自定义UILable控件的展示效果176
13.2.3 定义更加丰富多彩的UILabel控件178
13.3 按钮控件——UIButton179
13.3.1 创建UIButton按钮控件179
13.3.2 为按钮添加触发事件181
13.3.3 为UIButton添加自定义图片182
13.4 图片显示控件——UIImageView184
13.4.1 图片类UIImage184
13.4.2 使用UIImageView进行图片的展示184
13.4.3 使用UIImageView播放动画185
13.5 文本输入框控件——UITextField186
13.5.1 创建文本输入框控件187
13.5.2 为UITextField设置左右视图188
13.5.3 UITextField控件的代理方法189
13.6 开关控件UISwitch192
13.7 分页控制器——UIPageControl193
13.8 分部控制器——UISegmentedControl194
13.8.1 创建分布控制器控件194
13.8.2 UISegmentedControl控件中按钮的增删改操作195
13.8.3 关于UISegmentedControl控件中按钮的尺寸问题196
13.9 模拟面试197
4章 UI控件与逻辑交互(2)198
14.1 滑块控件UISlider199
14.1.1 UISlider控件的创建与设置199
14.1.2 UISlider控件的外观自定义与用户交互200
14.2 活动指示器UIActivityIndicatorView201
14.3 进度条控件UIProgressView202
14.4 步进器UIStepper204
14.5 选择器控件UIPickerView205
14.6 时间选择器UIDataPicker209
14.7 搜索栏控件UISearchBar211
14.7.1 创建UISearchBar控件211
14.7.2 UISearchBar控件的更多功能按钮214
14.7.3 UISearchBar控件的附件视图215
14.7.4 UISearchBarDelegate协议详解216
14.8 模拟面试217
5章 视图控制器与不错UI视图控件219
15.1 应用程序的界面管理器UIViewController220
15.1.1 关于MVC设计模式220
15.1.2 UIViewController的周期221
15.1.3 UIViewController之间的切换与传值222
15.2 导航视图控制器UINavigationController227
15.2.1 理解导航结构228
15.2.2 搭建使用导航结构的项目228
15.2.3 对导航栏进行自定义设置230
15.2.4 使用导航进行视图控制器的切换管理232
15.3 标签栏控制器UITabBarController233
15.3.1 创建以UITabBarController为项目结构工程234
15.3.2 对UITabBarController中的标签进行自定义配置237
15.3.3 标签栏上标签的溢出与排序功能239
15.4 警告视图控制器的应用241
15.4.1 认识UIAlertAction类241
15.4.2 使用UIAlertController创建警告框窗242
15.4.3 使用UIAlertController创建抽屉窗244
15.5 网页视图的应用245
15.5.1 网页视图UIWebView245
15.5.2 认识WebKit框架248
15.5.3 使用WKWebViewConfiguration对网页视图进行配置249
15.5.4 WKWebView中的重要属性和方法解析251
15.5.5 关于WKUIDelegate协议253
15.6 滚动视图UIScrollView的应用253
15.6.1 创建UIScrollView滚动视图254
15.6.2 UIScrollViewDelegate协议介绍255
15.6.3 UIScrollView的缩放操作256
15.7 列表视图UITableView的应用257
15.7.1 创建UITableView列表258
15.7.2 进行数据载体UITableViewCell的自定义262
15.7.3 UITableView的编辑模式265
15.7.4 为UITableView添加索引栏268
15.8 集合视图UICollectionView的应用269
15.8.1 使用UICollectionView实现简单的九宫格布局269
15.8.2 使用FlowLayout进行更加灵活的九宫格布局271
15.8.3 实现炫酷的瀑布流布局273
15.9 分页控制器UIPageViewController的应用276
15.9.1 创建一个UIPageViewController工程276
15.9.2 关于UIPageViewControllerDelegate的更多应用280
(咨询特价) 模拟面试283
6章 动画与界面布局技术285
16.1 使用UIView层动画实现属性渐变效果286
16.1.1 UIView层的属性过渡动画286
16.1.2 UIView层的转场动画289
16.2 通过GIF文件播放动画291
16.2.1 使用原生的UIImageView来播放GIF动态图291
16.2.2 使用UIWebView来进行GIF动态图的播放293
16.3 iOS开发中的CoreAnimation核心动画技术294
16.3.1 初识CoreAnimation框架294
16.3.2 锚点对视图几何属性的影响294
16.3.3 几种常用的CALayer子类介绍295
16.3.4 CoreAnimation框架中的属性动画介绍298
16.3.5 CoreAnimation框架中的转场动画与组合动画300
16.4 炫酷的粒子效果301
16.4.1 粒子发射引擎与粒子单302
16.4.2 创建火焰粒子效果304
16.5 Autolayout自动布局技术306
16.5.1 使用storyboard或者xib文件进行界面的自动布局306
16.5.2 进行视图间的约束布局309
16.5.3 使用原生代码进行Autolayout自动布局310
16.5.4 使用第三方框架SnapKit进行Autolayout自动布局313
16.6 使用Autolayout创建自适应高度的 UITextView输入框314
16.7 模拟面试316
7章 网络与数据存储技术318
17.1 获取互联网上公开API所提供的数据319
17.1.1 注册天行API会员319
17.1.2 进行API接口测试320
17.1.3 关于JSON数据格式321
17.2 在iOS开发中进行网络数据请求322
17.2.1 关于HTTP网络请求协议322
17.2.2 使用URLSession进行网络请求322
17.3 使用UserDefaults进行简单数据的持久化存储324
17.3.1 使用UserDefaults与Plist文件进行常见类型数据的存储325
17.3.2 使用Plist文件进行数据持久化处理326
17.4 iOS开发中的归档技术应用328
17.4.1 对简单数据类型的归档操作328
17.4.2 对自定义数据类型进行归档操作330
17.5 数据库在iOS开发中的应用331
17.5.1 操作数据库常用语句331
17.5.2 可视化数据库管理工具MesaSQLite的简单应用334
17.5.3 libsqlite3库简介336
17.5.4 在iOS工程中调用libsqlite3库操作数据库338
17.6 使用CoreData框架进行数据管理341
17.6.1 使用CoreData框架进行数据模型设计341
17.6.2 使用CoreData进行数据的添加与查询操作343
17.7 使用CoreData框架进行数据管理345
第3部分 项目实战
8章 实战一:简易计算器349
18.1 计算器按键与操作面板的封装349
18.2 计算器显示板输入显示的逻辑开发352
18.3 计算器计算逻辑的设计357
18.4 为应用添加图标与启动页359
9章 实战二:点滴生活记事本361
19.1 项目工程的搭建361
19.2 主页记事分组视图的开发364
19.3 添加分组功能的开发367
19.4 数据库引入与记事分组信息的持久化369
19.5 记事列表界面的搭建372
19.6 新建记事功能的开发376
19.7 更新记事与删除记事功能的开发381
第20章 实战三:《中国象棋》游戏385
20.1 项目工程的搭建与音频模块的开发385
20.2 《中国象棋》棋子控件的开发389
20.3 《中国象棋》棋盘控件的开发392
20.4 “兵”与“卒”行棋逻辑的开发396
20.5 “将”与“士”相关棋子行棋逻辑的开发403
20.6 “象”与“马”相关棋子行棋逻辑的开发405
20.7 “车”与“炮”棋子行棋逻辑的开发410
20.8 胜负判定逻辑开发与游戏功能完善414
20.9 拆分冗长的checkCanMove()方法419
附录A CocoaPods库管理工具的应用427
附录B 关键概念检索表430
内容简介
本书由资深iOS开发工程师精心编撰,兼备核心语法、编程技巧、应用实践3部分。部分从Xcode开发工具及Swift学习环境的搭建开始,重点介绍Swift的语言特性和应用场景、Swift 4的新增特性,并提供大量编程练习,帮助读者尽快掌握Swift语言的精髓。第2部分介绍Swift开发iOS应用的基本技能,包括独立UI控件的应用、视图界面逻辑的开发、动画与布局技术、网络与数据处理技术等,旨在带领读者掌握独立开发一款iOS 应用程序的能力。第3部分为应用部分,这部分安排3个实战项目(简易计算器、生活记事本、中国象棋游戏),旨在全面锻炼读者的实际开发能力,使用Swift进行开发实践。本书各章还安排了练习题与模拟面试题,以帮助读者巩固知识应对职场面试。
通过本书的学习,读者可以掌握使用Swift语言开发一款iOS软件从理论到实践的全部技术细节。本书既适合使用Swift开发iOS应用的新......