Swift语言入门实例教程 [2021版]

包含228节互动教程,基于最新的iOS 14.5 + Xcode 12.5 + Swift 5.4。

包含常量与变量、基本数据类型,以及Swift语言中的新数据类型:元组型和可选型的内容。同时还讲解了运算符和表达式、流程控制语句、字符和字符串、集合类型、函数和闭包。此外,Swift面向对象的枚举、结构体、类,以及内存管理、协议、错误处理、链式编程、面向协议编程、响应式编程(贪吃蛇游戏)、iOS开发中的常见概念等内容也有所涉及!

在第八章我们使用Swift语言实现了栈、队列、二叉树等数据结构,还实现了常见的8种排序算法,以及常见的6种设计模式。最后一章则包含了证书的创建、项目的架构、开发、打包、上传和发布一整套流程,供您学以致用!

您的学习进度
订阅用户可随时查看学习进度~
课程列表

第1章 Swift简介

1. 第一课:iOS项目模板的介绍
2. 使用Playground学习Swift
3. Swift语言中的常量和变量
4. Swift的标识符和关键字
5. Swift的表达式Expressions
6. 给Swift代码添加注释语句
7. Swift的几个打印输出语句
8. 在控制台输出类的实例及其属性

第2章 Swift数据类型

1. Swift的(Boolean)布尔类型
2. Swift的(Int)整形类型
3. Swift的(Float)和(Double)浮点类型
4. 字符串(String)及对字符(Characters)的遍历
5. Swift字符串的使用详解
6. Swift字符串的Raw String
7. Swift中的元组(Tuples)
8. 基本数据类型之间的互相转换
9. 一维数组(Array)的使用详解
10. 多维数组的创建和遍历
11. 数组的几种遍历方式
12. 字符串和字符数组的相互转换
13. 通过filter, allSatisfy, first, last, partition等方法过滤数组
14. 通过min, max等方法过滤数组中的元素
15. 通过prefix, drop等方法截取数组
16. 通过flatMap, compactMap等方法对数组进行降维操作
17. 字典(Dictionary)的使用详解
18. 通过filter, map, mapValues等方法对字典进行过滤和映射
19. 集合(Set)的创建、修改以及集合之间的交、并、差运算
20. Swift的一元、二元和三元运算符
21. 位运算、左移、右移和溢处的处理
22. 比较运算符和区间运算符的使用

第3章 Swift流程控制

1. 使用for-in循环遍历数组
2. 使用循环语句获得序列中的最小值
3. switch-case语句的实例解析
4. continue、break和fallthrough的区别
5. while和repeat-while循环语句
6. 实战:使用while实现对数字的反转
7. if和if-let判断语句的使用解析
8. #if, #warning, #error等预处理器指令的使用

第4章 Swift的函数

1. 函数func以及函数的参数和返回值
2. 函数的外部参数名
3. 创建拥有任意数量参数的函数
4. 函数的输入输出inout参数解析
5. 给函数的参数设置默认的取值
6. 使用函数作为另一个函数的参数
7. 函数类型的解析
8. 使用函数类型作为函数的返回类型
9. 函数可以拥有多个返回值
10. 藏在函数内部的函数
11. 递归函数和尾递归函数的使用解析
12. Swift那些非常实用的内部函数
13. 使用defer延缓代码的执行
14. 使用guard-let简化复杂的判断语句
15. 使用prefixm, infix, postfix自定义运算符
16. Swift中的闭包(Closure)详解
17. 逐步阐明闭包的省略写法
18. 闭包的延迟调用特性
19. 闭包对外部变量的捕获

第5章 Swift的类和对象

1. Swift的枚举(enum)类型及遍历
2. 给枚举类型添加方法
3. 使用CaseIterable 获取枚举的所有成员
4. Swift的结构(struct)类型及其下标(subscript)
5. 使用mutating修饰函数以修改属性的值
6. 通过callAsFunction函数将实例作为函数来调用
7. 使用同名函数使函数的调用更加简单
8. 类(class)的初始化方法、属性和方法
9. 类的引用(reference)特征
10. 类和结构两个类型的比较
11. 类属性的set和get方法解析
12. 类属性的willSet和didSet方法解析
13. 类析构方法(deinit)的使用
14. 给类添加下标(subscript)
15. 使用类方法和静态方法
16. 将一个类的实例作为另一个类的属性
17. 类的继承以及方法的重写(override)
18. 父类在实例类型转化时的应用
19. 使用is语句检查实例的类型
20. 使用Any表示任意值类型

第6章 Swift扩展和协议

1. 使用扩展(extension)扩展类型的属性
2. 使用extension对方法进行扩展
3. 实战:通过扩展判断数组是否相同
4. Swift语言中的泛型编程
5. 使用协议(protocol)进行方法的声明
6. 使用typealias 关键词类型定义新的名称
7. 使用associatedtype给协议添加一个类型占位符
8. 面向协议编程:保证类型转换的安全性
9. 面向协议编程:通过扩展为协议提供默认的实现
10. 面向协议编程实战:基于协议的网络请求1
11. 面向协议编程实战:基于协议的网络请求2
12. 面向协议编程实战:基于协议的网络请求3
13. 使用some关键词使编译器根据返回值推断值的类型
14. 使用where 关键词进行条件约束和类型约束
15. 问号?和感叹号!的用法解析
16. Swift中的下划线_的几处妙用
17. Swift的do-try-catch错误处理模式
18. 使用MemoryLayout查看各种类型的内存占用情况
19. 使用Swift代码对内存指针进行操作
20. 实例的引用特征和Swift的内存管理
21. 实例的交叉引用和弱引用(weak)
22. Swift的懒加载(lazy initialization)使用解析

第7章 Swift中常见的UI类

1. 范围Range、ClosedRange和NSRange的使用
2. 点CGPoint和变形CGAffineTransform的使用
3. 尺寸CGSize的使用详解
4. 范围CGRect的使用详解
5. 使用NSString对字符串进行各种操作
6. 日期Date和DateFormatter日期的格式化
7. 实战:检查两个项目的生命周期是否重叠
8. 日历Calendar和日期组件DateComponents
9. 日历Calendar和时区TimeZone
10. 使用定时组件Timer执行定时任务
11. 使用UserDefaults和归档方式存取用户数据
12. 路径URL的使用详解
13. 使用DispatchGroup管理线程组
14. 使用UIScreen查询设备屏幕信息
15. 使用UIColor设置界面组件的颜色属性
16. Swift中的KVC键值编码和KVO键值观察
17. 使用@autoclosure把一句话表达式封装成闭包
18. 使用@available声明类型所依赖的平台版本
19. 使用@discardableResult屏蔽Result unused警告
20. 使用@dynamicCallable像调用函数一样使用实例
21. 使用@_dynamicReplacement实现方法或属性的替换
22. 使用@dynamicMemberLookup实现动态成员查找
23. 使用@escaping创建可逃逸的闭包
24. 使用@propertyWrapper对被包装的类型进行自定义
25. 使用@resultBuilder通过指定的结构组合多个result
26. 通过让对象本身作为返回值实现优雅的链式语法
27. 通过单例模式实现异步任务的按序执行
28. 响应式编程框架Combine:使用Publisher发布者
29. 响应式编程框架Combine:使用PassthroughSubject
30. 响应式编程框架Combine:PassthroughSubject发布状态
31. 响应式编程框架Combine:使用CurrentValueSubject
32. 响应式编程框架实战:下载远程图片
33. 响应式编程框架实战:Combine和NotificationCenter的结合
34. 响应式编程框架实战:@Published修饰符的使用
35. 响应式编程框架实战:贪吃蛇游戏的开发 - 配置
36. 响应式编程框架实战:贪吃蛇游戏的开发 - 工具类
37. 响应式编程框架实战:贪吃蛇游戏的开发 - 搭建场景
38. 响应式编程框架实战:贪吃蛇游戏的开发 - 完成

第8章 Swift概念和算法

1. Swift语言中的三种消息传递模式
2. 闭包在定时任务、动画和线程中的使用
3. 通过protocol在两个对象中进行消息传递
4. 通过间接代理进行对象间的消息传递
5. 通过属性进行对象间的消息传递
6. 使用通知的方法进行对象间的数据传递
7. 使用performSegue在故事板页面之间进行数据传递1
8. 使用performSegue在故事板页面之间进行数据传递2
9. Swift中的栈Stack和队列Queue详解
10. Swift中的链表LinkedList详解
11. 使用Swift创建一个二叉树BinaryTreeNode
12. Swift语言中的算法:冒泡排序算法
13. Swift语言中的算法:选择排序算法
14. Swift语言中的算法:插入排序算法
15. Swift语言中的算法:希尔排序算法
16. Swift语言中的算法:快速排序算法
17. Swift语言中的算法:归并排序算法
18. Swift语言中的算法:基数排序算法
19. Swift语言中的算法:堆排序算法
20. Swift语言中的设计模式:单例模式
21. Swift语言中的设计模式:工厂模式
22. Swift语言中的设计模式:建造者模式
23. Swift语言中的设计模式:原型模式
24. Swift语言中的设计模式:享元模式
25. Swift语言中的设计模式:装饰者模式

第9章 Swift实例教程

1. 第一部分:在Xcode中创建ACT学习辅助软件ACTHelper
2. 创建应用程序的Identifier并添加测试设备
3. 创建开发证书、发布证书和Provisioning Profile
4. 在AppConnect中创建产品ACTHelper
5. 在ACTHelper项目中使用CocoaPod管理插件
6. 第二部分:整合项目里的所有通用常量和枚举
7. 创建BaseViewController作为控制器的基类
8. 创建作为主要功能入口的欢迎页面
9. 设置应用程序顶部状态栏的前景颜色
10. 第三部分:创建登陆页面中的自定义视图及相关组件
11. 创建登陆页面的自定义表单Row
12. 登陆页面的自定义表单Row的内容校验
13. 创建所有登录、注册相关页面的基类
14. 制作整个登陆页面的基本框架
15. 实现国内、海外用户注册表单的切换
16. 使用通知中心解决按钮被键盘遮挡的问题
17. 使用AES加密算法对密码进行加密
18. 创建UserInfo数据实体类
19. 创建用于获取用户信息的网络请求类
20. 存储和读取沙箱中的用户状态
21. 创建一个工具类以获取应用程序的主窗口
22. 完成整个登录页面的业务功能
23. 第四部分:开始制作注册流程中的账号输入页面
24. 实现向服务器请求验证码的功能
25. 完成注册流程中的账号输入页面
26. 开始制作注册流程中的验证码输入页面
27. 完成注册流程中的验证码输入页面
28. 开始制作注册流程中的密码设置页面
29. 完成注册流程中的密码设置页面
30. 完成注册流程中的最后一个页面
31. 第五部分:制作用于过滤试卷的区域
32. 完成页面顶部过滤面板等区域的创建
33. 创建用于获取试卷列表的实体类和网络请求
34. 实现试卷列表中的自定义视图
35. 完成试卷列表自定义视图的制作
36. 整合试卷列表的自定义视图
37. 实现试卷过滤面板的折叠和展开
38. 创建一个自定义视图作为试卷过滤按钮
39. 制作用来拾取考试类型的页面
40. 实用ACT/SAT考试类型的选取
41. 制作根据区域对试卷进行选取的页面
42. 制作试卷的区域列表视图
43. 完成根据区域对试卷进行选取的页面的制作
44. 制作自定义视图以显示试卷中的每个科目
45. 实现向服务器请求试卷信息的功能
46. 创建试卷内容页面中的一些自定义视图
47. 完成试卷内容页面的制作
48. 创建用于获取试卷答案列表的实体类和网络请求
49. 制作一个自定义视图以显示试卷的答案列表
50. 制作一个自定义视图以显示试题编号和答案
51. 创建用于获取题目备选答案列表的实体类
52. 创建用于获取题目备选答案列表的网络请求
53. 创建位于页面右下角的快捷功能按钮
54. 制作用于展示试题内容的详情页面
55. 完成试题内容详情页面的制作
56. 完成试题原文页面的制作
57. 第六部分:开始制作用户档案页面
58. 开始创建用户信息编辑页面
59. 完成用户信息编辑页面的基本框架
60. 实现用户头像的编辑功能
61. 将用户头像上传到七牛服务器并存储在沙箱
62. 实现用户昵称的编辑
63. 开始制作用户反馈页面
64. 完成用户反馈页面的制作
65. 设置应用程序的图标和启动画面
66. 第七部分:App的打包、上传和提交审核


扫一扫安装app