gpt4 book ai didi

ios - 组织多个 NSURLSessionTasks

转载 作者:行者123 更新时间:2023-12-01 16:44:27 26 4
gpt4 key购买 nike

我有一个可以从网站下载文件的 iOS 应用程序。我创建了一个 NSURLSession在一个类(class)Downloads来管理它们。 Downloads类有 NSMutableArray使用我的 DownloadItem 跟踪所有当前和过去的下载对象。我对这个设置不满意。

目前,我必须拥有 Downloads类作为所有下载的代表。我认为没有办法分配每个 NSURLSessionDownloadTask 的代表到 DownloadItem目的。所以,我必须把它分配给我的Downloads对象,然后让它找出哪种方式DownloadItem将消息转发到。

目前我通过创建一个名为 tasksDictionary 的 NSMutableDictionary 来做到这一点。在 Downloads并使用 taskIdentifier作为一把 key 。

return [self.tasksDictionary objectForKey:[NSNumber numberWithInteger:task.taskIdentifier]];

这似乎有效,但似乎不是最有效的方法。我还担心我看到创建的第一个 taskIdentifier 是 0这将使得很难辨别已完成的任务和第一个任务之间的区别。

有没有更好的方法来跟踪这些事情?有没有办法为任务分配新的代表?

最佳答案

也许有这些 ivars:

NSMutableArray *completedDownloads;
NSMutableDictionary *activeDownloadTasks; // @(taskID) => DownloadItem

完成后,弹出 DownloadItem来自 activeDownloadTasks并将其添加到 completedDownloads .

否则你在做什么听起来很漂亮。

当我这样做时,这种语法可能会有所帮助(使用您的示例):
return self.tasksDictionary[@(task.taskIdentifier)];

关于ios - 组织多个 NSURLSessionTasks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21126503/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com