2016-10-11 12 views
0

我使用下面的代码下载图像的背景可供选择:QOS_CLASS_USER_INITIATED仅在IOS 8或不

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

,但得到错误“QOS_CLASS_USER_INITIATED仅在IOS提供8或不是”

+0

简答:将您的部署目标设置为iOS 8或更高版本。 – HAS

回答

0

试试这个代码:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)) { 

}

+0

这几乎与您的问题中的代码相反。 – HAS

+0

我只想在后台下载图片,并且它可以工作。 – CrazyVK56

0

我认为这与最近苹果一直鼓励开发人员尽可能地(适当地)切换使用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