本书从Swift的第四个版本开始,从基础全面的语法,到iOS 11 & 12的iOS 入门级App开发,□后由一个很实用的iOS小游戏开发结尾。适合新手从零开始上手,一步一步地,坚实掌握iOS开发技术的一站式启蒙之书。另外,本书还配套有语法和iOS基础开发的视频,有效提升学习效率和理解维度,增强学习兴趣,同时可以与作者无缝交流,让您快乐学习iOS开发。
借iOS每年一次大幅更新的东风,经过几个版本的成长,Swift 4已经非常成熟了,在iOS开发中的便利程度和第三方库的生态建设上,它实际已经大幅□□Objective-C。苹果所有的官方文档和视频资料均以Swift语言为主。这个语言的原作者虽然离开了苹果公司,但Swift本身的发展丝毫没有减缓。笔者认为,除了维护垂垂老矣的Objective-C项目,新项目完全可以用Swift 4从头开始实施。拥抱强类型、类型推断、Optional、面向协议、泛型编程这些现代化编程语言必备的特性,是每个程序员必备的功课之一。
本书分以下3篇:Swift 4基础语法篇、iOS 11基础开发篇和游戏实战篇。若读者在阅读本书时遇到问题,可以进入QQ群532084830,与众多开发者沟通或下载相关资料,也可以在各大视频平台、小波说雨燕官网(xiaoboswift.com)观看本书配套的视频课程,这会使读者的学习效率大幅提升!
□□篇 Swift 4基础语法篇□□章 关于Swift 3第2章 Swift语法基础 72.1 变量和常量 72.2 注释 82.3 分号 92.4 整数 92.5 浮点数 102.6 类型安全和类型推断 102.7 数值型字面量 102.8 数值类型转换 112.9 布尔类型 132.10 元组 132.11 可选类型 142.12 错误处理 152.13 断言 16第3章 Swift基本运算符 173.1 术语 173.2 赋值运算符 173.3 算术运算符 183.4 组合赋值运算符 193.5 比较运算符 193.6 三元(目)运算符 203.7 空合运算符 213.8 区间运算符 223.9 逻辑运算符 23第4章 Swift字符串和字符 264.1 字符串字面量 264.2 初始化空字符串 264.3 字符串可变性 274.4 字符串都是值类型 274.5 使用字符 274.6 连接字符串与字符 284.7 字符串插入值 284.8 UniCode 294.9 计算字符数量 314.10 访问与修改字符串 314.11 比较字符串 33第5章 Swift集合类型 355.1 数组 355.2 集 395.3 字典 42第6章 Swift控制流 466.1 for循环 466.1.1 for-in 476.1.2 for条件递增 486.2 while循环 486.2.1 while 496.2.2 repeat while 496.3 if语句 506.4 guard语句 516.5 switch语句 526.6 控制转移语句 546.6.1 continue语句 546.6.2 break语句 556.6.3 fallthrough语句 566.6.4 return语句 57第7章 Swift函数 587.1 函数的定义和调用 587.2 函数的参数和返回值 597.2.1 多个输入参数的函数 597.2.2 没有参数的函数 597.2.3 没有返回值的函数 607.2.4 没有返回值的函数调用具有返回值的函数 607.2.5 多个返回值的函数 607.2.6 元组可选类型返回值的函数 617.3 函数的参数名称 627.3.1 外部参数名称 627.3.2 带默认值参数的函数 627.3.3 可变参数的函数 637.3.4 常量参数和变量参数 637.3.5 输入和输出参数 647.4 函数类型 657.4.1 使用函数类型 657.4.2 使用函数类型作为参数 657.4.3 使用函数类型作为返回值 667.4.4 使用函数类型作为常量 667.5 嵌套函数 67第8章 Swift闭包 688.1 闭包的定义 688.2 闭包表达式 698.2.1 sorted函数 698.2.2 使用闭包表达式 708.2.3 根据上下文推断参数 708.2.4 单表达式闭包省掉返回关键字 708.2.5 参数名称缩写 718.2.6 运算符函数 718.3 挂尾闭包 718.4 闭包的值捕获 728.5 闭包是引用类型 73第9章 Swift枚举 749.1 枚举的定义、结构和使用 749.2 枚举在switch语句中的使用 759.3 枚举关联值 759.4 枚举原始值 76□□0章 Swift类和结构体 7710.1 类和结构体的对比 7710.1.1 类和结构体的定义 7810.1.2 类和结构体的实例 7810.1.3 类和结构体的属性访问 7810.2 结构体是值类型 7910.3 类是引用类型 7910.4 如何选择类和结构体 7910.5 集合类型的赋值和复制 80□□1章 Swift属性 8111.1 存储属性 8111.1.1 普通存储属性 8111.1.2 延迟存储属性 8211.2 计算属性 8211.3 属性观察器 8411.4 全局变量和局部变量 8511.5 静态属性 85□□2章 Swift方法 8612.1 实例方法 8612.1.1 使用类中定义的实例方法 8612.1.2 使用结构体中定义的实例方法 8712.1.3 使用枚举中定义的实例方法 8812.2 静态方法 8912.2.1 使用类中定义的静态方法 8912.2.2 使用结构体中定义的静态方法 89□□3章 Swift下标 9113.1 下标的定义 9113.2 下标的用法 9213.3 下标脚本 93□□4章 Swift继承 9514.1 继承的定义 9514.2 继承的一般用法 9514.3 重写父类的方法和属性 9614.3.1 重写父类的方法 9614.3.2 重写父类的属性 9714.4 防止父类的特性被重写 98□□5章 Swift初始化 9915.1 初始化的定义 9915.2 为存储属性设置初始值 9915.3 自定义构造函数 10015.4 默认构造函数 10115.5 值类型的初始化 10215.6 引用类型的初始化 10315.6.1 指定构造函数和便利构造函数 10415.6.2 类的代理初始化调用 10415.6.3 两段式构造过程 10515.6.4 构造函数的继承和重写 10715.6.5 自动构造函数的继承 10815.6.6 指定和便利构造器的实战 10915.7 可失败构造函数 11115.8 必要构造函数 11615.9 通过闭包或方法设置属性的默认值 116□□6章 Swift析构 11916.1 析构的原理 11916.2 析构的实战 119□□7章 Swift错误处理 12217.1 创建错误类型 12217.2 抛出错误 12317.3 捕获和处理错误 12417.4 不处理错误 12617.5 将错误转为可选类型 126□□8章 Swift泛型 12818.1 泛型能解决的问题 12818.2 泛型函数 12918.3 类型参数 13018.4 命名类型参数 13118.5 泛型类型 13118.6 泛型类型的扩展 13318.7 类型约束 13418.8 关联类型 13618.9 条件语句 138□□9章 Swift扩展 14019.1 扩展的定义和语法 14019.2 扩展计算属性 14019.3 扩展构造函数 14119.4 扩展方法 14319.5 扩展下标 14419.6 扩展嵌套函数 144第20章 Swift协议 14620.1 协议的定义和语法 14620.2 对属性的规定 14720.3 对方法的规定 14820.4 对变异方法的规定 14920.5 对构造函数的规定 15020.6 协议也是一种类型 15120.7 代理 15220.8 在扩展中添加协议 15520.9 协议类型的集合 15520.10 协议的继承 15620.11 协议类型的组合 15720.12 检查协议的一致性 158第2篇 iOS 11基础开发篇第21章 入门级 16321.1 开发环境配置 16321.2 Playground 16421.3 □□个App 16821.4 创建用户交互 178第22章 初级 18122.1 AutoLayout 18122.2 StackView 18422.3 Size Class 19222.4 Table View 19722.4.1 原型单元格 19922.4.2 代理模式 20122.4.3 连接数据源 20322.5 自定义单元格 20422.6 单元格交互 21622.7 单元格滑动菜单 21922.8 导航和转场 226第23章 中级 23523.1 Model重构 23523.2 静态单元格 24123.3 导航栏、状态条和动态字体的定制技巧 24823.4 视差动画 25623.5 特效、动画和手势 25923.6 JSON编/解码 27123.7 录入新数据场景 27623.8 真机部署 28523.9 相册、拍照和录制视频 287第3篇 游戏实战篇第24章 卡牌斗兽棋 29924.1 项目介绍与分析 29924.2 项目框架搭建 30124.3 首页和棋盘控制器的搭建 30624.4 相关model和走棋逻辑的实现 33024.5 单机双人对战的实现 33724.6 人机对战的实现 36024.7 联网对战的实现 37124.8 联网对战的优化 400
张云波,昵称小波,网络知名讲师,《小波说雨燕》系列视频作者,目前致力于移动开发培训领域。曾在IBM/HP/神州数码/埃森哲/SONY/SAP等公司从事商业软件开发相关工作,有海外工作经验,英语日语熟练。 参与项目:iCard信用卡/国家电网&上海电力互通3期/文雅科BI产品综合测试/Charment II/日本某音乐APP/夏普Sharp无锡液晶屏QS-I/淘宝某第三方平台分销APP/葛兰素史克-新药销售代表用APP/辉瑞新药推广APP 。