Alamofire 优先队列

Alamofire Priority Queue

我正在使用 Alamofire 作为我的 Swift 应用程序的网络库。有没有办法用 Alamofire 保持 "priority queue" 的网络请求?我想我以前在图书馆看到过这个功能,但我找不到它或找不到关于这个的其他帖子。

假设我在我的应用程序中打开一个页面,它开始发出一些请求。首先它得到一些 JSON,速度很快,没问题。

从 JSON 中提取一些信息,然后开始下载图像。这些图像可能非常大并且需要很多秒(有时约 30 秒或更长时间)。但棘手的部分是用户可以选择在图像完成下载之前转到下一页。

如果用户在图片下载完成之前转到下一页,是否可以将其转到较低优先级的队列?这样当下一页上的图像开始加载时,它们会加载得更快吗?如果可能的话,我什至愿意完全暂停旧请求,直到新请求完成为止。

请记住,我乐于接受许多建议。我在实施方面有很大的自由度。因此,如果这是一个不同的库,或者 iOS 中的不同机制,那很好。即使我继续为 JSON 使用 Alamofire 并使用其他东西进行所有图像下载和管理也没有问题。

此外,可能无关紧要,但我会在此处添加。我正在使用 https://github.com/rs/SDWebImage 来缓存我的图像,一旦它们被完全下载。这就是为什么我不想完全取消请求。我需要它完成,然后它就不会再发生了。

TL;DR 我想要一个快速队列和一个慢速队列,能够在完成之前将事物从快速队列移动到慢速队列。

您是否考虑过管理 NSOperationQueue? tutorial 可能会有帮助。在他的示例中,他在下载滚出页面时暂停了下载,但我相信您可以改为调整 NSOperation 对象的 queuePriority 属性。