Swift从入门到精通

副标题:无

作   者:张益珲

分类号:

ISBN:9787302469209

微信扫一扫,移动浏览光盘

简介


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

目录


第1部分 Swift语言基础

第1章 学习环境的搭建 3

1.1 申请个人AppleID账号 3

1.2 下载与安装Xcode开发工具 4

1.3Xcode开发工具简介 5

1.4 使用Playground进行Swift代码演练 9

第2章 量值与基本数据类型 10

2.1 变量与常量 10

2.1.1变量与常量的定义和使用 11

2.1.2变量和常量的命名规范 12

2.2 关于注释 13

2.3 初识基本数据类型 13

2.3.1数学进制与计算机存储原理 14

2.3.2整型数据 14

2.3.3浮点型数据 15

2.3.4布尔型数据 16

2.4 两种特殊的基本数据类型16

2.4.1元组 16

2.4.2可选值类型 17

2.5 为类型取别名 20

2.6 练习及解析 20

第3章 字符、字符串与集合类型21

3.1 字符串类型 21

3.1.1进行字符串的构造 21

3.1.2字符串的组合 22

3.2 字符类型 23

3.2.1字符类型简介 23

3.2.2转义字符 24

3.3 字符串类型中的常用方法24

3.4 集合类型 26

3.4.1Array数组类型 27

3.4.2Set集合类型 30

3.4.3Dictionary字典类型 33

3.5 练习及解析 35

第4章 基本运算符与程序流程控制38

4.1 初识运算符 38

4.1.1赋值运算符 39

4.1.2基本算术运算符 39

4.1.3基本逻辑运算符 40

4.1.4比较运算符 41

4.1.5条件运算符 41

4.2Swift语言中两种特殊的运算符 42

4.2.1空合并运算符 42

4.2.2区间运算符 43

4.3 循环结构 43

4.3.1for-in循环结构 43

4.3.2while与repeat-while条件循环结构 44

4.4 条件选择与多分支选择结构46

4.4.1if与if-else条件选择结构 46

4.4.2switch-case多分支选择结构 46

4.5Swift语言中的流程跳转语句 49

4.6 练习及解析 52

第5章 函数与闭包技术 56

5.1 函数的基本应用 56

5.1.1函数的创建与调用 57

5.1.2关于函数的参数名 58

5.1.3函数中参数的默认值、不定数量参数与inout类型参数 59

5.2 函数的类型与函数嵌套 61

5.3 理解闭包结构 63

5.3.1闭包的语法结构 63

5.3.2通过实现一个排序函数来深入理解闭包 63

5.4 将闭包作为参数传递时的写法优化 66

5.5 后置闭包、逃逸闭包与自动闭包 67

5.6 练习及解析 68

第6章 高级运算符与枚举 72

6.1 位运算符与溢出运算符 72

6.1.1位运算符的应用 72

6.1.2溢出运算符 74

6.2 运算符的重载与自定义 74

6.2.1重载运算符 74

6.2.2自定义运算符 76

6.3 运算符的优先级与结合性77

6.4 枚举类型的创建与应用 79

6.5 枚举的原始值与相关值 81

6.5.1枚举的原始值 81

6.5.2枚举的相关值 82

6.5.3递归枚举 83

6.6 练习及解析 86

第7章类与结构体 88

7.1 类与结构体的定义 88

7.1.1结构体 88

7.1.2类 90

7.2 设计一个交通工具类 91

7.3 开发中类与结构体的应用场景94

7.4 练习及解析 95

第8章 属性与方法 97

8.1 存储属性与计算属性 97

8.1.1存储属性的意义及应用 97

8.1.2计算属性的意义及应用 100

8.2 属性监听器 102

8.3 实例属性与类属性 103

8.4 实例方法与类方法 104

8.4.1实例方法的意义与应用 104

8.4.2类方法 105

8.5 下标方法 106

8.6 练习及解析 108

第9章 构造方法与析构方法 109

9.1 构造方法的设计与使用109

9.2 指定构造方法与便利构造方法112

9.3 构造方法的继承关系 113

9.4 构造方法的安全性检查115

9.5 可失败构造方法与必要构造方法 116

9.6 析构方法 117

9.7 练习及解析 118

第10章 内存管理与异常处理 120

10.1自动引用计数 120

10.2循环引用及其解决方法 123

10.3闭包中的循环引用 128

10.4异常的抛出与传递 129

10.5异常的捕获与处理 130

10.6延时执行结构 131

10.7练习及解析 132

第11章 类型转换、泛型、扩展与协议133

11.1类型检查与转换 133

11.1.1Swift语言中的类型检查 134

11.1.2Swift语言中的类型转换 134

11.2Any与AnyObject类型 135

11.3泛型 137

11.3.1初识泛型 137

11.3.2对泛型进行约束 139

11.4扩展与协议 141

11.4.1使用扩展对已经存在的数据类型进行补充 141

11.4.2协议的特点与应用 143

11.4.3协议与扩展的结合 146

第2部分 iOS开发基础

第12章 UI控件与逻辑交互(1) 148

12.1iOS项目工程简介 148

12.1.1创建iOS项目工程 148

12.1.2运行第一个iOS程序 150

12.2标签控件——UILabel 151

12.2.1使用代码创建一个UILabel控件 152

12.2.2自定义UILable控件的展示效果 152

12.2.3定义更加丰富多彩的UILabel控件 154

12.3按钮控件——UIButton 155

12.3.1创建UIButton按钮控件 155

12.3.2为按钮添加触发事件 157

12.3.3为UIButton添加自定义图片 158

12.4图片显示控件——UIImageView 160

12.4.1图片类UIImage 160

12.4.2使用UIImageView进行图片的展示 160

12.4.3使用UIImageView播放动画 161

12.5文本输入框控件——UITextField 162

12.5.1创建文本输入框控件 162

12.5.2为UITextField设置左右视图 164

12.5.3UITextField控件的代理方法 165

12.6开关控件UISwitch 168

12.7分页控制器——UIPageControl 169

12.8分部控制器——UISegmentedControl 170

12.8.1创建分布控制器控件 170

12.8.2UISegmentedControl控件中按钮的增删改操作 171

12.8.3关于UISegmentedControl控件中按钮的尺寸问题 172

第13章 UI控件与逻辑交互(2) 173

13.1滑块控件UISlider 173

13.1.1UISlider控件的创建与设置 173

13.1.2UISlider控件的外观自定义与用户交互 174

13.2活动指示器UIActivityIndicatorView 176

13.3进度条控件UIProgressView 177

13.4步进器UIStepper 178

13.5选择器控件UIPickerView 180

13.6时间选择器UIDataPicker 183

13.7搜索栏控件UISearchBar 186

13.7.1创建UISearchBar控件 186

13.7.2UISearchBar控件的更多功能按钮 188

13.7.3UISearchBar控件的附件视图 189

13.7.4UISearchBarDelegate协议详解 190

第14章 视图控制器与高级UI视图控件 192

14.1应用程序的界面管理器UIViewController 192

14.1.1关于MVC设计模式 192

14.1.2UIViewController的生命周期 193

14.1.3UIViewController之间的切换与传值 195

14.2导航视图控制器UINavigationController 200

14.2.1理解导航结构 201

14.2.2搭建使用导航结构的项目 201

14.2.3对导航栏进行自定义设置 203

14.2.4使用导航进行视图控制器的切换管理 205

14.3标签栏控制器UITabBarController 207

14.3.1创建以UITabBarController为项目结构工程 207

14.3.2对UITabBarController中的标签进行自定义配置 210

14.3.3标签栏上标签的溢出与排序功能 212

14.4警告视图控制器的应用 214

14.4.1认识UIAlertAction类 214

14.4.2使用UIAlertController创建警告框弹窗 215

14.4.3使用UIAlertController创建抽屉弹窗 217

14.5网页视图的应用 218

14.5.1网页视图UIWebView 218

14.5.2认识WebKit框架 221

14.5.3使用WKWebViewConfiguration对网页视图进行配置 222

14.5.4WKWebView中重要属性和方法解析 225

14.5.5关于WKUIDelegate协议 226

14.6滚动视图UIScrollView的应用 227

14.6.1创建UIScrollView滚动视图 227

14.6.2UIScrollViewDelegate协议介绍 228

14.6.3UIScrollView的缩放操作 230

14.7列表视图UITableView的应用 231

14.7.1创建UITableView列表 231

14.7.2进行数据载体UITableViewCell的自定义 235

14.7.3UITableView的编辑模式 238

14.7.4为UITableView添加索引栏 242

14.8集合视图UICollectionView的应用 243

14.8.1使用UICollectionView实现简单的九宫格布局 243

14.8.2使用FlowLayout进行更加灵活的九宫格布局 245

14.8.3实现炫酷的瀑布流布局 247

14.9分页控制器UIPageViewController的应用 251

14.9.1创建一个UIPageViewController工程 251

14.9.2关于UIPageViewControllerDelegate的更多应用 255

第15章动画与界面布局技术 259

15.1使用UIView层动画实现属性渐变效果 259

15.1.1UIView层的属性过渡动画 259

15.1.2UIView层的转场动画 263

15.2通过GIF文件播放动画 265

15.2.1使用原生的UIImageView来播放GIF动态图 265

15.2.2使用UIWebView来进行GIF动态图的播放 267

15.3iOS开发中的CoreAnimation核心动画技术 268

15.3.1初识CoreAnimation框架268

15.3.2锚点对视图几何属性的影响 268

15.3.3几种常用的CALayer子类介绍 269

15.3.4CoreAnimation框架中的属性动画介绍 273

15.3.5CoreAnimation框架中的转场动画与组合动画 274

15.4炫酷的粒子效果 276

15.4.1粒子发射引擎与粒子单元 276

15.4.2创建火焰粒子效果 279

15.5Autolayout自动布局技术 281

15.5.1使用storyboard或者xib文件进行界面的自动布局 281

15.5.2进行视图间的约束布局 284

15.5.3使用原生代码进行Autolayout自动布局 285

15.5.4使用第三方框架SnapKit进行Autolayout自动布局 288

15.6使用Autolayout创建自适应高度的 UITextView输入框 289

第16章 网络与数据存储技术 292

16.1获取互联网上公开API所提供的数据 292

16.1.1注册APIStore会员 292

16.1.2进行API接口测试 293

16.1.3关于JSON数据格式 294

16.2在iOS开发中进行网络数据请求 295

16.2.1关于HTTP网络请求协议 295

16.2.2使用URLSesstion进行网络请求 296

16.3使用UserDefaults进行简单数据的持久化存储 298

16.3.1使用UserDefaults与Plist文件进行常见类型数据的存储 298

16.3.2使用Plist文件进行数据持久化处理 300

16.4iOS开发中的归档技术应用 302

16.4.1对简单数据类型的归档操作 302

16.4.2对自定义数据类型进行归档操作 304

16.5数据库在iOS开发中的应用 305

16.5.1操作数据库常用语句 305

16.5.2可视化数据库管理工具MesaSQLite的简单应用 308

16.5.3libsqlite3数据库操作库简介 310

16.5.4在iOS工程中调用libsqlite3库操作数据库 312

16.6使用CoreData框架进行数据管理 315

16.6.1使用CoreData框架进行数据模型设计 315

16.6.2使用CoreData进行数据的添加与查询操作 317

第3部分 项目实战

第17章 实战一:简易计算器 321

17.1计算器按键与操作面板的封装 321

17.2计算器显示板输入显示的逻辑开发 324

17.3计算器计算逻辑的设计 329

17.4为应用添加图标与启动页 332

第18章 实战二:点滴生活记事本334

18.1项目工程的搭建 334

18.2主页记事分组视图的开发 337

18.3添加分组功能的开发 340

18.4数据库引入与记事分组信息的持久化 342

18.5记事列表界面的搭建 346

18.6新建记事功能的开发 349

18.7更新记事与删除记事功能的开发 355

第19章 实战三:《中国象棋》游戏359

19.1项目工程的搭建与音频模块的开发 359

19.2《中国象棋》棋子控件的开发 363

19.3《中国象棋》棋盘控件的开发 366

19.4“兵”与“卒”行棋逻辑的开发 371

19.5“将”与“士”相关棋子行棋逻辑的开发 379

19.6“象”与“马”相关棋子行棋逻辑的开发 381

19.7“车”与“炮”棋子行棋逻辑的开发 387

19.8胜负判定逻辑开发与游戏功能完善 392

19.9拆分冗长的checkCanMove()方法 398

附录A CocoaPods库管理工具的应用 406

附录B 关键概念检索表 409


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Swift从入门到精通
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon