内容简介
《Swift:面向协议编程》第1章简要介绍了Swift 的发展历史以及Swift 开发工具的获取途径。
第2章介绍了Swift 的基础语法,细致讲解了面向协议编程中至关重要的协议扩展用法与泛型优化。
第3章讲解了Swift 的进阶语法,从语言层面深入到内存层面,对Swift 的特性进行了剖析,帮助读者写出更加Swift 化的代码。
第4章通过一个完整的计算器Demo 指导读者快速完成一个iOS 应用的开发,熟悉Xcode 的使用,理解经典的MVC 编程模式。
第5章通过一个备忘录Demo,将传统的MVC、MVVM 思想构建的程序与基于协议构建的程序进行了多个维度的对比,揭开了面向协议编程思想的神秘面纱,教会读者如何在实际工作中应用面向协议编程思想。
目录
第1章 搭建Swift开发环境
1.1 Swift介绍
1.1.1 Swift的前世今生
1.1.2 Swift与Objective-C
1.2 Mac OS X操作系统
1.3 Xcode简介和获取方法
1.3.1 Xcode简介
1.3.2 playground简介
1.3.3 Xcode的获取方法
1.4 iPhone SDK简介
第2章 Swift基础语法
2.1 基础知识
2.1.1 命名规则
2.1.2 常量与变量
2.1.3 类型推测
2.1.4 注释
2.1.5 输出常量和变量
2.2 基本数据类型
2.2.1 整数
2.2.2 浮点数
2.2.3 布尔类型
2.2.4 元组类型
2.2.5 可选型
2.3 基本运算符
2.3.1 赋值运算符
2.3.2 数值运算
2.3.3 自增和自减运算
2.3.4 复合赋值
2.3.5 比较运算
2.3.6 三元运算符
2.3.7 逻辑运算符
2.3.8 范围
2.3.9 括号优先级
2.4 字符串与字符
2.5 集合类型
2.5.1 数组
2.5.2 集合
2.5.3 字典
2.6 控制流
2.6.1 for循环
2.6.2 while循环
2.6.3 if判断语句
2.6.4 guard判断语句
2.6.5 switch开关语句
2.7 函数
2.8 闭包
2.9 Swift三杰——类、结构体、枚举
2.9.1 Swift三杰简介
2.9.2 值引用与类型引用
2.9.3 类
2.9.4 结构体
2.9.5 枚举
2.10 属性
2.10.1 存储属性
2.10.2 计算属性
2.10.3 属性观察器
2.10.4 类型属性
2.11 方法
2.12 下标
2.13 继承
2.14 构造与析构
2.14.1 构造器
2.14.2 析构器
2.15 类型检查与类型转换
2.15.1 类型检查
2.15.2 类型转换
2.16 类型嵌套
2.17 扩展
2.17.1 扩展计算属性
2.17.2 扩展构造器
2.17.3 扩展方法
2.17.4 扩展下标
2.18 协议
2.18.1 声明协议
2.18.2 遵守协议
2.18.3 实现协议
2.18.4 实现扩展
2.18.5 协议扩展补充
2.18.6 协议的继承
2.19 泛型
2.19.1 节点泛型
2.19.2 泛型协议
2.19.3 泛型对象
2.19.4 泛型方法
2.19.5 协议中的where关键字
2.19.6 泛型特化
2.20 Swift语法补充
2.20.1 断言
2.20.2 precondition
第3章 Swift进阶语法
3.1 再谈可选型
3.1.1 可选型
3.1.2 为什么要用可选型
3.1.3 解包可选型
3.1.4 可选绑定
3.1.5 可选链
3.1.6 可选型中的map和flatMap
3.1.7 Swift中的错误处理
3.1.8 隐式解包
3.1.9 关于可选型的思考
3.2 同构与异构
3.2.1 数据源中的同构与异构
3.2.2 AnyObject/Any简介
3.2.3 AnyObject的使用
3.2.4 AnyObject与id的对比
3.3 数组方法的探究
3.3.1 filter方法
3.3.2 map和flatMap方法
3.3.3 reduce方法
3.3.4 sort(sorted)方法
3.3.5 Side-Effect与forEach方法
3.3.6 contains方法
3.3.7 indexOf(index(of:))方法
3.3.8 prefix、suffix系方法
3.3.9 dropFirst、dropLast方法
3.3.10 Slice
3.3.11 RangeReplaceableCollectionType
3.3.12 数组的底层协议
3.3.13 带下标的数组遍历
3.3.14 Demo演示
3.4 Objective-C兼容性
3.4.1 类型桥接
3.4.2 OC和Swift的设计区别
3.5 Swift内存管理
3.5.1 栈和堆
3.5.2 值类型和引用类型
3.5.3 Copy-on-Write
3.5.4 利用引用类型的“共享”
3.5.5 ARC(自动引用计数)
3.5.6 循环引用
3.5.7 弱引用与无主引用
3.5.8 柯里化与方法参数中的闭包
3.5.9 @noescape与@autoclosure
3.5.10 静态派发和动态派发
3.5.11 协议类型的存储属性
3.5.12 静态多态与动态多态
3.5.13 泛型特化
3.5.14 小结
3.6 模式匹配
3.6.1 模式匹配简介
3.6.2 枚举的模式匹配
3.6.3 元组的模式匹配
3.6.4 if和guard中的模式匹配
3.6.5 for中的模式匹配
3.6.6 模式匹配中的where关键字
第4章 iOS开发入门
4.1 iOS系统初探
4.1.1 核心OS(Core OS)层
4.1.2 核心服务(Core Services)层
4.1.3 媒体(Media)层
4.1.4 Cocoa Touch层
4.2 MVC模式
4.2.1 MVC简介
4.2.2 iOS中的MVC
4.3 新建一个Swift工程
4.4 认识Interface Builder
4.5 构建计算器界面
4.5.1 使用对象库中的对象
4.5.2 使用检查器设置对象
4.5.3 尝试运行程序
4.5.4 添加约束
4.5.5 关联代码
4.5.6 完善按键
4.6 实现计算器逻辑
4.6.1 补全键盘
4.6.2 给键盘添加约束
4.6.3 实现数字显示功能
4.6.4 实现运算逻辑
4.7 修改计算器为MVC模式
4.8 NSNotification
4.8.1 NSNotification简介
4.8.2 addObserver方法
4.8.3 addObserverForName方法
4.8.4 postNotification方法
4.8.5 Swift 3.0中的Notification
4.9 AutoLayout快速入门
4.9.1 边距与距离
4.9.2 中心与对齐
4.9.3 尺寸与比例
4.9.4 绝对位置与挤压
第5章 面向协议编程
5.1 继承与组合
5.2 搭建页面
5.3 创建storyboard对应的子类
5.4 创建模型
5.5 串联MVC
5.6 MVVM
5.7 图解MVC与MVVM
5.8 MVC面向协议化
5.9 MVC多态优化
5.10 快速开发
5.11 组合
5.12 交互
5.13 搜索
1. 本站分享的所有书籍均来源于自互联网,我们只进行收集整理,并不对书籍内容进行更改。
2. 部分书籍中可能有书籍压制者放置的广告,这并不是本站所为,请注意甄别。
3. 我们分享这些书籍,纯粹是出于知识分享的热情,以及对互联网分享精神的高度认同和践行,不以盈利为目的。
4. 本站分享的所有书籍,仅供个人学习研究使用,请勿用于任何商业用途,否则产生的一切法律纠纷与本站无关。
5. 如果这些书籍让你有所收获,在条件允许的情况下,请一定购买正版书籍,这是对创作者最好的支持。
6. 如果您是此书籍的版权所有者,且您不希望此作品出现在本站,请联系我们,我们将在收到您的请求后48小时内予以删除。
📖 支持知识自由流动
每一本书的稳定访问,都离不开服务器、存储与带宽的长期维护。




![谷津阳子(Yatsu Yoko). 中国茶艺在日本推广现状及前景实证研究[D].上海交通大学,2015.](https://www.zhihailib.com/wp-content/uploads/thumb/2025/04/fill_w455_h634_g0_mark_7ad33611a03bbdbeb85c6083dda82bfa.jpg)

