Swift从零到精通iOS开发

本书由资深iOS开发工程师精心编撰,兼备核心语法、编程技巧、应用实践3部分。第1部分从Xcode开发工具及Swift学习环境的搭建开始,重点介绍Swift的语言特性和应用场景、Swift4的新增特性,并提供大量编程练习,帮助读者尽快掌握Swift语言的精髓。第2部分介绍Swift开发iOS应用的基本技能,包括独立UI控件的应用、视图界面逻辑的开发、动画与布局技术、网络与数据处理技术等,旨在带领读者掌握独立开发一款iOS应用程序的能力。第3部分为应用部分,这部分安排3个实战项目(简易计算器、生活记事本、中国象棋游戏),旨在全面锻炼读者的实际开发能力,使用Swift进行开发实践。本书各章还安排了练习题与模拟面试题,以帮助读者巩固知识应对职场面试。通过本书的学习,读者可以掌握使用Swift语言开发一款iOS软件从理论到实践的全部技术细节。本书既适合使用Swift开发iOS应用的新手、有Objective-C基础想学习Swift的iOS开发人员阅读,也适合用作培训机构与大中专院校移动开发课程的教学参考书或面试指导书。

作者简介

张益珲(网名:珲少),多年iOS开发经验,51CTO学院、CSDN学院签约讲师,麦子学院金牌讲师,参与开发iOS平台系列游戏:疯狂越狱1-2、应用物通配货软件、VIPExam考试库、证券财经软件等,曾就职于中国唯品会,主要从事移动端应用开发,对iOS开发、ReactNative跨平台开发及JavaScript前端开发都拥有丰富的经验。曾出版《iOS开发实战:从零基础到AppStore上架》《ReactNative全教程:移动端跨平台应用开发》等多本编程著作。

---------------------
目录

第1部分Swift语言基础语法
第1章学习环境的搭建3
1.1申请个人AppleID账号3
1.2下载与安装Xcode开发工具4
1.3Xcode开发工具简介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.1Array数组类型30
3.4.2Set集合类型33
3.4.3Dictionary字典类型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.2Swift语言中两种特殊的运算符46
4.2.1空合并运算符46
4.2.2区间运算符47
4.3循环结构48
4.3.1for-in循环结构48
4.3.2while与repeat-while条件循环结构49
4.4条件选择与多分支选择结构50
4.4.1if与if-else条件选择结构50
4.4.2switch-case多分支选择结构51
4.5Swift语言中的流程跳转语句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
第10章内存管理与异常处理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
第11章类型转换、泛型、扩展与协议147
11.1类型检查与转换148
11.1.1Swift语言中的类型检查148
11.1.2Swift语言中的类型转换149
11.2Any与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

第12章Swift4特性指南162
12.1内存安全检查(独占访问权限)162
12.2关联类型可以添加where约束子句165
12.3增强字符串和区间运算符的功能165
12.4泛型与协议功能的增强166
12.5模拟面试168

第2部分iOS开发基础
第13章UI控件与逻辑交互(1)171
13.1iOS项目工程简介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.3UITextField控件的代理方法189
13.6开关控件UISwitch192
13.7分页控制器——UIPageControl193
13.8分部控制器——UISegmentedControl194
13.8.1创建分布控制器控件194
13.8.2UISegmentedControl控件中按钮的增删改操作195
13.8.3关于UISegmentedControl控件中按钮的尺寸问题196
13.9模拟面试197

第14章UI控件与逻辑交互(2)198
14.1滑块控件UISlider199
14.1.1UISlider控件的创建与设置199
14.1.2UISlider控件的外观自定义与用户交互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.2UISearchBar控件的更多功能按钮214
14.7.3UISearchBar控件的附件视图215
14.7.4UISearchBarDelegate协议详解216
14.8模拟面试217
第15章视图控制器与高级UI视图控件219
15.1应用程序的界面管理器UIViewController220
15.1.1关于MVC设计模式220
15.1.2UIViewController的生命周期221
15.1.3UIViewController之间的切换与传值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.4WKWebView中的重要属性和方法解析251
15.5.5关于WKUIDelegate协议253
15.6滚动视图UIScrollView的应用253
15.6.1创建UIScrollView滚动视图254
15.6.2UIScrollViewDelegate协议介绍255
15.6.3UIScrollView的缩放操作256
15.7列表视图UITableView的应用257
15.7.1创建UITableView列表258
15.7.2进行数据载体UITableViewCell的自定义262
15.7.3UITableView的编辑模式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
15.10模拟面试283
第16章动画与界面布局技术285
16.1使用UIView层动画实现属性渐变效果286
16.1.1UIView层的属性过渡动画286
16.1.2UIView层的转场动画289
16.2通过GIF文件播放动画291
16.2.1使用原生的UIImageView来播放GIF动态图291
16.2.2使用UIWebView来进行GIF动态图的播放293
16.3iOS开发中的CoreAnimation核心动画技术294
16.3.1初识CoreAnimation框架294
16.3.2锚点对视图几何属性的影响294
16.3.3几种常用的CALayer子类介绍295
16.3.4CoreAnimation框架中的属性动画介绍298
16.3.5CoreAnimation框架中的转场动画与组合动画300
16.4炫酷的粒子效果301
16.4.1粒子发射引擎与粒子单元302
16.4.2创建火焰粒子效果304
16.5Autolayout自动布局技术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
第17章网络与数据存储技术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.4iOS开发中的归档技术应用328
17.4.1对简单数据类型的归档操作328
17.4.2对自定义数据类型进行归档操作330
17.5数据库在iOS开发中的应用331
17.5.1操作数据库常用语句331
17.5.2可视化数据库管理工具MesaSQLite的简单应用334
17.5.3libsqlite3库简介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部分项目实战
第18章实战一:简易计算器349
18.1计算器按键与操作面板的封装349
18.2计算器显示板输入显示的逻辑开发352
18.3计算器计算逻辑的设计357
18.4为应用添加图标与启动页359

第19章实战二:点滴生活记事本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
附录ACocoaPods库管理工具的应用427
附录B关键概念检索表430

#现在前往

精选留言

Swift,精通,iOS,开发
sample
2020-09-24
写留言
签到
投稿
QQ咨询
返回顶部