我正在使用以下代码在后台下载图像:

dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0)) {
   //code for image download
}


但出现错误“ QOS_CLASS_USER_INITIATED仅在ios 8中可用”

最佳答案

我认为这与以下事实有关:最近,Apple一直在鼓励开发人员在可能的情况下(和适当的时候)从使用dispatch_queue_t切换到更高级别的OperationQueue类。

如您所知,QOS_CLASS_USER_INITIATED是服务质量设置,您在用户发起更改后将其附加到调度队列,因此需要以高优先级调度与之相关的操作。与OperationQueue等效的是设置QualityOfService变量:

myOperationQueue.qualityOfService = QualityOfService.userInitiated


看一下OperationQueue参考:
https://developer.apple.com/reference/foundation/operationqueue

以下文章概述了如何在dispatch_queue框架中实现服务质量:

https://developer.apple.com/library/content/documentation/Performance/Conceptual/EnergyGuide-iOS/PrioritizeWorkWithQoS.html

关于swift - QOS_CLASS_USER_INITIATED仅在iOS 8中可用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39974826/

10-11 08:24