如何在 Swift 中创建带有名称的后台优先级串行队列?

How to create a background priority SERIAL queue WITH A NAME, in Swift?

好的,我可以像这样创建一个全局串行后台队列

DispatchQueue.global(qos: .background).async {

}

但我希望我的队列有一个名称。所以我尝试了 Apple 推荐的这段代码(哈!):

let queueAttributes = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_PRIORITY_BACKGROUND, QOS_CLASS_BACKGROUND, 0)
let videoQueue = dispatch_queue_create("videoQueue", queueAttributes);

正如预期的那样,指向 DISPATCH_QUEUE_PRIORITY_BACKGROUND 失败并出现此错误

Cannot convert value of type 'Int' to expected argument type '__OS_dispatch_queue_attr?'

显然点击错误或搜索网络没有任何线索,自动完成也没有提供任何关于应该放在那里的线索。

有什么想法吗?

您可以使用:

DispatchQueue(label: "name.of.your.queue")

let processingQueue = DispatchQueue(label: "your.queue", qos: .background,
                                    attributes: [],
                                    autoreleaseFrequency: .inherit,
                                    target: nil)

注意DispatchQueue.Attributes是一个OptionSet,可以传空[],也可以组合几个值在上面