值不值得学:先搞清楚它解决什么问题
这份资料是 Swift 语法体系的下半段,核心解决的是“写不出规范的自定义数据模型”和“看不懂 iOS 工程里各种嵌套取值”的问题。如果你之前只写过简单的变量和控制流,一旦遇到要在工程里封装网络请求返回的 JSON、或者处理可能为空的用户头像字段就会卡壳,那这门课就是对症的。它不教你画界面,也不涉及具体的客户端业务开发,而是专注把面向对象和类型系统里最容易踩坑的环节掰开揉碎。对于想往苹果生态开发转行、或者需要维护现有 Swift 代码库的上班族来说,这部分内容是绕不开的地基。如果连可选链和访问级别都理解不透,后面写任何稍微复杂的模块都会到处报错。
适合什么基础与建议先看哪几块
这套资料不适合完全没写过代码的零基础小白,它默认你已经掌握了基础语法、循环和函数,能看懂最简单的编译运行。如果你连基本的数据类型都没弄明白,建议先去补完上一季再来碰这份资料。对于符合基础要求的读者,建议不要按顺序从头啃,而是优先看面向对象类型、可选链以及存储属性这三个核心板块。面向对象类型这块直接讲透了结构体和类的本质区别,这是 Swift 区别于很多老牌语言的关键;可选链部分则是日常搬砖用得最多的语法,搞懂问号和感叹号的实际差异能帮你省下无数个查崩溃的深夜。把这几块吃透,再回头去看下标和访问级别的实践,思路会顺畅很多。
学完能独立做什么与资料怎么配合练习
学完这套语法篇,你依然不能立刻独立交付一个完整的商业 App,但你能独立完成工程中底层的数据结构封装。具体来说,拿到一组复杂的接口返回数据,你能自己写出带嵌套的结构体或类,合理设置属性的访问范围,并安全地处理其中可能缺失的字段,不会再被 Xcode 的编译红线逼着乱改。在练习配合上,看视频时务必打开 Xcode 的 Playground 同步敲代码。资料里的每个概念都很抽象,尤其是枚举原始值和可选链的组合使用,光听不练过几天必忘。建议每看完一个独立的小节,就自己虚构一个业务场景,比如模拟一个可能没有昵称的用户资料卡,把视频里的代码自己手敲一遍并故意写错几次,观察编译器怎么报错。只有让报错信息真正刺激到你,这些死板的语法规则才会变成你手里的工具,而不是脑子里一段容易遗忘的录音。
课程目录
课程目录54 集
- 1-1 [Swift语言中的面向对象特性] 11.1-11.2Swift中的面向对象类型 (07:21).mp4
- 1-2 [Swift语言中的面向对象特性] 11.3.1枚举成员值 (09:05).mp4
- 1-3 [Swift语言中的面向对象特性] 11.3.2枚举原始值 (07:54).mp4
- 1-4 [Swift语言中的面向对象特性] 11.4结构体与类 (04:56).mp4
- 1-5 [Swift语言中的面向对象特性] 11.6.1可选链的概念 (05:13).mp4
- 1-6 [Swift语言中的面向对象特性] 11.6.2使用问号和感叹号 (04:12).mp4
- 1-7 [Swift语言中的面向对象特性] 11.7.1-2访问范围和级别 (09:15).mp4
- 1-8 [Swift语言中的面向对象特性] 11.7.3使用访问级别**实践 (09:50).mp4
- 2-1 [属性与下标] 12.1.1存储属性概念 (10:49).mp4
- 2-2 [属性与下标] 12.1.2延迟存储属性 (07:34).mp4
- 2-3 [属性与下标] 12.2计算属性 (08:55).mp4
- 2-4 [属性与下标] 12.3属性观察者 (05:00).mp4
- 2-5 [属性与下标] 12.4静态属性 (11:48).mp4
- 2-6 [属性与下标] 12.5使用下标 (10:11).mp4
- 3-1 [方法] 13.1实例方法 (06:32).mp4
- 3-2 [方法] 13.2静态方法 (04:58).mp4
- 4-1 [构造与析构] 14.1.1构造函数概念和默认构造函数 (10:02).mp4
- 4-2 [构造与析构] 14.1.2构造函数与存储属性初始化 (05:00).mp4
- 4-3 [构造与析构] 14.1.3使用外部参数名 (04:37).mp4
- 4-4 [构造与析构] 14.2构造函数重载 (06:54).mp4
- 4-5 [构造与析构] 14.3析构函数 (04:20).mp4
- 5-1 [类继承] 15.1从一个示例开始 (03:31).mp4
- 5-2 [类继承] 15.2.1构造函数调用规则 (06:51).mp4
- 5-3 [类继承] 15.2.2构造过程安全检查 (19:04).mp4
- 5-4 [类继承] 15.2.3构造函数继承 (03:50).mp4
- 5-5 [类继承] 15.3重写 (10:09).mp4
- 5-6 [类继承] 15.4.1使用is进行类型检查 (03:18).mp4
- 5-7 [类继承] 15.4.2使用as、as!和as?进行类型转换 (13:23).mp4
- 5-8 [类继承] 15.4.3使用Any和AnyObject类型 (03:31).mp4
- 6-1 [扩展] 16.1-16.2扩展概念和扩展声明 (03:52).mp4
- 6-2 [扩展] 16.3扩展计算属性 (04:12).mp4
- 6-3 [扩展] 16.4扩展方法 (04:32).mp4
- 6-4 [扩展] 16.5扩展构造函数 (02:57).mp4
- 6-5 [扩展] 16.6扩展下标 (05:27).mp4
- 7-1 [协议] 17.1协议概念 (04:05).mp4
- 7-2 [协议] 17.2协议定义和遵从 (04:44).mp4
- 7-3 [协议] 17.3协议方法 (10:25).mp4
- 7-4 [协议] 17.4协议属性 (06:14).mp4
- 7-5 [协议] 17.5面向协议编程 (20:49).mp4
- 7-6 [协议] 17.5.6面向协议编程示例:表视图中使用扩展协议 (06:29).mp4
- 8-1 [泛型] 18.1-18.2泛型概念和泛型函数 (13:11).mp4
- 8-2 [泛型] 18.3泛型类型 (10:44).mp4
- 8-3 [泛型] 18.4泛型扩展 (03:18).mp4
- 9-1 [Swift内存管理] 19.1Swift内存管理概述 (16:15).mp4
- 9-2 [Swift内存管理] 19.2强引用循环 (09:11).mp4
- 9-3 [Swift内存管理] 19.3.1弱引用 (05:08).mp4
- 9-4 [Swift内存管理] 19.3.2无主引用 (05:38).mp4
- 9-5 [Swift内存管理] 19.4闭包中的强引用循环 (07:40).mp4
- 10-1 [错误处理] 20.1Cocoa错误处理模式 (05:15).mp4
- 10-2 [错误处理] 20.2do-try-catch错误处理模式 (05:01).mp4
- 10-3 [错误处理] 20.2.1-2捕获错误和错误类型 (04:23).mp4
- 10-4 [错误处理] 20.2.3声明抛出错误 (09:23).mp4
- 10-5 [错误处理] 20.2.4在函数或方法中抛出错误 (02:46).mp4
- 10-6 [错误处理] 20.2.5try问号和try感叹号的使用区别 (04:37).mp4






