喜马拉雅IOS开发笔记
-
由于我的课程设计做的比较简单至少是现在做得计较简单, 现在我已经接入成功了,所以SDK接入教程可能会在后续做笔记
-
在官方给出的SDK中有一个demo使用OC写的,我们在demo中接入自己的开发者认证账号 运行项目
运行结果如上, 似乎功能还很多 我们现在想要自己用storyborad+swift来写的话 就要查看源码
1. Viewcontroller
- 我们找到源码中 用OC写的Viewcontroller,并找到对应的代码
这是存储在数组中的字符串用于页面展示, 我们接着往下找
这里我们可以看到 demo中给出的参数字典包含了 四个键值对分别是
一、 params字典:
- category_id => 0 应该是分类id吧
- count => 20 应该是是接收数据
- page => 1 因该是页面数
- q => 思维 应该是搜索关键字了
二、 requestXmData => XMRqeType_SearchAlbums
这个参数是一个枚举类中的一个类别 具体的枚举类 在SDK中 Unity 包中的 XMSDKInfo 类中
这时我们一直藏在心底的疑问得到了解答,请求数据一般因该有一个接口呀,尽管我们把关键字这些封装在了字典里面,但是没有目标接口,SDK给我们的不是直接的接口而是枚举请求类型,
例如 XMRqeType_SearchAlbums 表示我们请求的数据是专辑列表,所以我们得到的数据将是专辑级别的数据
有请求的参数当然有返回值了
- result 应该就是返回值
- error 应该就是反馈的错误信息
接下来 程序进行了是否出错的判断 在这里我们先讨论没有出错的情况下
在没有出错的条件下 它调用了showReciveData方法(应该就是展示数据了)
这个方法有三个参数
- result 我们得到的反馈数据
- className => XMAlbum(专辑)
- valuePath => albums
- titleNeedShow => albumTitle
对OC有一些认识的应该明白 参数给的是自己定死的字符串,并不是请求回传的数据里面的数
Viewcontroller 的 showReciveData 方法
接下来我们进入方法showReciveData
程序一开始就定义了一个可变数组NSMutableArray
NSMutableArray基本概念 - iFat - 博客园 (cnblogs.com)
第二行相当于通过字符串实体化一个类 (类似Java反射)
那么这个类在哪呢 传入的className 是 “XMAlbum”
在SDK中的model实体类中 有这个对象 在给出的开发者文档中也对这个类有阐述
好长的model
我们考虑不出错的境况下 进入语句
重点在这句, 我们将 result 就是我们得到的专辑级别的数据,与 dataClass(专辑实体类),数据进行一一映射,形成一个专辑类型的数组,可以说至此我们的数据从网络数据转化成了model(专辑实体类),这句程序我们后面还会再次提到,很神奇(我的OC没学好)
随后 在跳转页面之前 把model(专辑实体