我对swift中面向协议的编程非常陌生。我正在使用下载SDK开发OTT产品。我的代码中有一些东西。
-
VODContent
-&燃气轮机;表示vod的模型。
-
OfflineMedia
-&燃气轮机;协议。
-
RLMOfflineMedia
-&燃气轮机;要创建的领域数据库类
在SDK中存储VOD数据。
视频内容
和
乳晕病
离线媒体
. 这样我就可以使用
离线媒体
作为介于两者之间的适配器
视频内容
乳晕病
extension
对于
执行数据库操作。它具有如下类似的结构。
//RLMOfflineMedia+OfflineMedia.swift
//which handles the DB operations related to RLMOfflineMedia
extension OfflineMedia {
var realmObject: RLMOfflineMedia {
return //check for an existing entry in database using primary key or creates a new realm object and return it.
}
}
在SDK中,我可以使用“离线媒体”轻松快速地管理数据库操作。“真实对象”或
self as? RLMOfflineMedia
OfflineMedia.realmObject
-
视频内容
(带着
二传手)。在执行数据库操作之前,先将获取的对象存储在此数据库中,然后再检查此对象是否为nil。(听起来
-
创建用作数据库缓存的数组或集。
注意:我假设数据库本身没有避免一次又一次获取相同内容的缓存机制。
**更新:-**
添加有关的更多信息
,
离线媒体
和
在这里
视频内容
表示从服务器解析为swift对象的对象。
是用作连接的网桥的协议
到SDK。通过确认
到
离线媒体
,我可以获得在SDK中保存/处理数据所需的任何属性。这意味着我不会将视频资源作为
视频内容
离线媒体
(我认为这叫做依赖注入)。这是我用的
OfflineContent
作为调解人。内部SDK
离线媒体
代表
视频内容
我可以通过确认将其保存到DB
乳晕病
归类于
离线媒体
要执行不同的操作(例如:DB操作、下载视频资产等),只需将大部分业务逻辑写入其中即可
离线媒体
扩大