别拿 Swift 版本老当借口,网络通信底层缺口今天就得补

这门课讲的是 iOS 应用怎么跟 Web Service 通信,核心绕不开数据交换格式与网络解析。别看它挂着 iOS8 的标签,Swift 初期版本的 API 写法到现在依然是底层基石。很多转岗做 iOS 的同学,本地 UI 写得挺溜,一到对接后端接口就抓瞎:不知道怎么把服务端返回的 XML 数据拆解成模型对象,碰到解析报错只会瞎改。这门课解决的就是从零开始理解数据交换格式,把客户端与服务器之间的数据流转彻底弄明白。它适合已经掌握 Swift 基础语法、能独立写点本地界面,但完全没碰过网络请求和文档解析的开发者。如果你连可选类型和闭包都搞不清,先退回去把语法补了再来;如果你正卡在应用连不上网、数据解析总崩的问题上,直接从这课下手。

先啃数据格式与解析框架,别在概述上磨时间

建议先看数据交换格式这块,把 XML 文档结构彻底吃透。很多人代码写不对,根本原因是连节点和属性都分不清,拿到服务端返回的报文两眼一黑。看完文档结构定义,直接跳到解析实例部分,跟着 MyNotes 应用那几节课敲代码。资料包里的示例工程千万别干看,必须打开 Xcode 跟着断点走。重点体会 NSXML 框架的代理回调机制:解析器读到开始标签触发什么方法,读到字符数据触发什么,结束标签又干什么。这套代理模式在老版本里是必须死记硬背的流程。配套练习时,自己找个返回 XML 的公开接口,试着把返回的数据解析成笔记列表。解析失败先查编码格式,再看节点层级有没有对上,别上来就怀疑框架有毛病。

学完能独立干什么,拿这三个问题自测

把这套流程跑通后,你应该能独立给一个 iOS 应用加上网络数据获取模块:知道怎么发起请求、怎么拿到原始数据、怎么用框架把 XML 拆成可用的模型对象。不要只停留在跟着视频抄代码,看完后必须能回答这几个问题:XML 文档的基本结构由哪些部分组成,跟 JSON 比差在哪?NSXML 框架解析时,几个核心代理方法分别在什么时机被调用?如果服务端返回的 XML 多了一层嵌套,你的解析代码要改哪里?答不上来就倒回去重看对应章节。资料包里的代码是配合练习用的脚手架,不是让你背下来的标准答案。自己把 MyNotes 的解析逻辑改成解析另一套 XML 结构,能跑通才算真学会。这门课不教你多高深的架构,就是帮你把网络通信这块短板补齐,缺什么补什么,别假装什么都会。

课程目录

1-1 [11.1 概述] 11.1Web Service概述 (08:29)
1-2 [11.1 概述] 20150515第十五期直播答疑_上 (53:56)
1-3 [11.1 概述] 20150515第十五期直播答疑_下 (52:59)
2-1 [11.2 数据交换格式] 11.2 数据交换格式 (06:59)
2-2 [11.2 数据交换格式] 11.2.1数据交换格式-XML文档结构 (07:20)
2-3 [11.2 数据交换格式] 11.2.2.1 解析XML文档-解析说明 (12:32)
2-4 [11.2 数据交换格式] 11.2.2.2 实例:MyNotes应用解析XML文档 (03:04)
2-5 [11.2 数据交换格式] 11.2.2.3 实例:使用NSXML框架解析-1 (01:57)
2-6 [11.2 数据交换格式] 11.2.2.3 实例:使用NSXML框架解析-2 (13:54)
2-7 [11.2 数据交换格式] 11.2.2.3 实例:使用NSXML框架解析-3 (14:20)
2-8 [11.2 数据交换格式] 11.2.2.3 实例:使用NSXML框架解析-4 (12:35)
2-9 [11.2 数据交换格式] 11.2.2.4.1 实例:使用TBXML框架解析-环境配置 (16:22)
2-10 [11.2 数据交换格式] 11.2.2.4.2 实例:使用TBXML框架解析-代码实现 (15:27)
2-11 [11.2 数据交换格式] 11.2.3数据交换格式-JSON文档结构 (03:52)
2-12 [11.2 数据交换格式] 11.2.4数据交换格式-JSON数据解码 (16:50)
3-1 [11.3 REST Web Service] 11.3 REST Web Service (07:58)
3-2 [11.3 REST Web Service] 11.3.1REST Web Service-HTTP和HTTPS协议 (06:02)
3-3 [11.3 REST Web Service] 11.3.2REST Web Service-同步GET请求方法 (25:59)
3-4 [11.3 REST Web Service] 11.3.3REST Web Service-异步GET请求方法-1 (02:03)
3-5 [11.3 REST Web Service] 11.3.3REST Web Service-异步GET请求方法-2 (19:07)
3-6 [11.3 REST Web Service] 11.3.3REST Web Service-异步GET请求方法-3 (16:52)
3-7 [11.3 REST Web Service] 11.3.4REST Web Service-POST请求方式 (07:21)
3-8 [11.3 REST Web Service] 11.3.5 综合实例:调用REST Web Service的插入、修改和删除方法 (04:47)
3-9 [11.3 REST Web Service] 11.3.5.1 插入方法实现 (07:37)
3-10 [11.3 REST Web Service] 11.3.5.2 删除方法实现-1 (13:07)
3-11 [11.3 REST Web Service] 11.3.5.2 删除方法实现-2 (08:01)
3-12 [11.3 REST Web Service] 11.3.5.3 修改方法实现-1 (06:31)
3-13 [11.3 REST Web Service] 11.3.5.3 修改方法实现-2 (11:18)
4-1 [11.4 使用轻量级网络请求框架MKNetworkKit] 11.4.1ASIHTTPRequest、AFNetworking和MKNetworkKit比较 (06:33)
4-2 [11.4 使用轻量级网络请求框架MKNetworkKit] 11.4.2安装和配置MKNetworkKit框架-1 (06:42)
4-3 [11.4 使用轻量级网络请求框架MKNetworkKit] 11.4.3 GET请求方法 (15:27)
4-4 [11.4 使用轻量级网络请求框架MKNetworkKit] 11.4.4 POST请求方法 (03:06)
4-5 [11.4 使用轻量级网络请求框架MKNetworkKit] 11.4.5使用轻量级网络请求框架MKNetworkKit-实例:下载数据 (23:58)
4-6 [11.4 使用轻量级网络请求框架MKNetworkKit] 11.4.2 安装和配置MKNetworkKit框架-2 (08:42)
4-7 [11.4 使用轻量级网络请求框架MKNetworkKit] 11.4.6 实例:上传数据-1 (15:58)
4-8 [11.4 使用轻量级网络请求框架MKNetworkKit] 11.4.6实例:上传数据-2 (16:43)
5-1 [11.5 反馈网络信息改善用户体验] 11.5 反馈网络信息改善用户体验 (02:38)
5-2 [11.5 反馈网络信息改善用户体验] 11.5.1 使用下拉刷新控件改善用户体验-介绍 (07:22)
5-3 [11.5 反馈网络信息改善用户体验] 11.5.1 使用下拉刷新控件改善用户体验-实例 (09:45)
5-4 [11.5 反馈网络信息改善用户体验] 11.5.2 使用等待指示器控件 (14:41)
5-5 [11.5 反馈网络信息改善用户体验] 11.5.3 使用网络等待指示器 (04:46)