类型“DispatchQueue.Attributes”没有成员“序列”
Posted
技术标签:
【中文标题】类型“DispatchQueue.Attributes”没有成员“序列”【英文标题】:Type 'DispatchQueue.Attributes' has no member 'serial' 【发布时间】:2016-09-06 09:05:29 【问题描述】:我已使用 Xcode8 beta4 将现有的 Swift2.3 代码转换为 Swift3.0。 Xcode 自动将语法转换为 Swift3.0,但无法创建串行调度队列。
private let serialQueue = DispatchQueue(label: "identifier", qos: DispatchQueue.Attributes.serial)
【问题讨论】:
【参考方案1】:不再有.serial
属性,但是调度队列是
默认串行,除非您指定.concurrent
属性:
let serialQueue = DispatchQueue(label: "label")
let concurrentQueue = DispatchQueue(label: "label", attributes: .concurrent)
来源:How to create a serial DispatchQueue in swift 3 with Xcode 8 beta 4? 在 Apple 开发者论坛中。
【讨论】:
这在 swift 中失败 4. 在属性、autoreleaseFrequency 和目标中指定什么?文档太差了 @nr5:它是怎么失败的?上面的代码仍然可以在我的 Xcode 10 中使用 Swift 4.2 编译。 我想创建一个串行队列并且只想指定 qos。但在 Swift 4 中还有 3 个参数、属性、频率和目标。如果我使用您的代码,我无法指定 qos。我也无法理解文档:developer.apple.com/documentation/dispatch/dispatchqueue/… 请帮助!也许您可以回答某人提出的这个问题:***.com/questions/50129528/… @nr5:所有参数都有默认值,所以DispatchQueue(label: "label", qos: .background)
应该可以工作。
@nr5:这一切都在 Swift 语言参考中 :) 在 docs.swift.org/swift-book/LanguageGuide/Functions.html 中查找“默认参数值”。以上是关于类型“DispatchQueue.Attributes”没有成员“序列”的主要内容,如果未能解决你的问题,请参考以下文章