preDownloadGame:completion:
预下载游戏(通过 Game ID)
该方法通过游戏唯一标识符(Game ID)异步开启游戏包的下载任务。它会自动处理从云端获取下载地址、校验文件完整性以及存储到本地缓存的过程。通过预下载,可以显著减少用户进入游戏时的等待时间。
方法声明
objectivec
/**
Pre-download game package using game ID.
@param gameID The unique identifier of the game.
@param completion Called when the download task finishes or fails.
@return An instance of id<SUDOPGameTask> to control or track the task.
*/
+ (id<SUDOPGameTask>)preDownloadGame:(nonnull NSString *)gameID
completion:(nullable SUDOPCompletion)completion;参数说明
| 参数名 | 类型 | 必传 | 描述 |
|---|---|---|---|
| gameID | NSString * | 是 | 游戏的唯一标识符。 |
| completion | SUDOPCompletion | 否 | 任务结束回调。成功时 error 为 nil;失败时 error 包含具体原因。 |
返回值
返回一个遵循 id<SUDOPGameTask> 协议的对象。开发者可以通过该对象取消任务(cancel)或获取任务唯一标识。
运行行为
- 自动鉴权:SDK 内部会首先根据
gameID获取必要的下载凭证。 - 断点续传:SDK 通常支持断点续传逻辑,如果之前下载过部分内容,会从上次位置继续。
- 缓存策略:下载完成后,资源会被保存在 SDK 管理的私有缓存目录中,后续
startGame会优先从缓存加载。
代码示例
objectivec
[SUDOP preDownloadGame:@"game_abc_123" completions:nil];注意事项
- 网络环境:建议在调用前判断网络状态,或在回调中处理网络中断导致的错误。
- 重复触发:如果同一
gameID的任务正在运行,再次调用可能会返回同一个 Task 实例或直接进入当前任务的监听。 - 存储空间:请确保设备有足够的磁盘空间,否则下载会因 IO 错误而失败。