gpt4 book ai didi

ios - 如何使用 AFHTTPSessionManager 取消下载?

转载 作者:行者123 更新时间:2023-12-01 18:13:21 26 4
gpt4 key购买 nike

我的应用程序使用 AFHTTPSessionManager 的子类下载信息和获取。用户可能会选择退出下载,我正试图弄清楚如何取消下载。

我遇到了这段代码:

- (void) cancel {
[self.operationQueue cancelAllOperations];
}

但这似乎不起作用,因为下载完成了。

然后我尝试了:
- (void) cancel {
for (NSURLSessionTask *task in self.tasks) {
[task cancel];
}
}

这似乎确实中断了下载,但我不确定这是否是正确的方法。文档对此不是很有帮助(或者我还没有找到它)。

那么,以上是取消我的下载的正确方法吗?我需要做更多的清理工作吗?

最佳答案

你肯定不想用cancelAllOperations .基于操作的 AFHTTPRequestOperationManager 没问题请求,但不是基于任务的 AFHTTPSessionManager要求。可悲的是,AFHTTPSessionManager不使用操作。我理解为什么(考虑到 NSURLSessionTask 代表是在 session 级别指定的(!),它与后台 session 不兼容等事实,将任务包装在操作中非常复杂),但这太糟糕了,因为它显着减少了AFHTTPSessionManager 的值, 恕我直言。马特曾经说过他是going to remedy this ,但从未发布。

您取消单个任务的第二种方法很好。您也可以调用invalidateSessionCancelingTasks ,但是当您想要发起更多请求时,您可能必须重新实例化 session (或整个 AFHTTPSessionManager )。

关于ios - 如何使用 AFHTTPSessionManager 取消下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26193220/

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