类型“DispatchQueue.Attributes”没有成员“serial”

问题描述 投票:0回答:2

我已经使用 Xcode8 beta4 将现有的 Swift2.3 代码转换为 Swift3.0。 Xcode 自动将语法转换为 Swift3.0,但无法创建串行调度队列。

private let serialQueue = DispatchQueue(label: "identifier", qos: DispatchQueue.Attributes.serial)

ios swift grand-central-dispatch swift3
2个回答
27
投票

不再有

.serial
属性,但调度队列是 默认情况下是串行的,除非您指定
.concurrent
属性:

let serialQueue = DispatchQueue(label: "label")
let concurrentQueue = DispatchQueue(label: "label", attributes: .concurrent)

来源: 如何使用 Xcode 8 beta 4 在 swift 3 中创建串行 DispatchQueue? 在 Apple 开发者论坛中。


0
投票

使用 DispatchQueueSerial 或 DispatchQueueConcurrent 构造函数,这样您将获得正确的默认值。这两个构造函数都不允许您请求串行或并发执行,因为这是内置在类中的。 DispatchQueue 会给你一些不正确的默认值。

© www.soinside.com 2019 - 2024. All rights reserved.