类型“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”没有成员“序列”的主要内容,如果未能解决你的问题,请参考以下文章

c#中值类型和引用类型的区别

MySQl数据类型

值类型和引用类型

TS 基本类型分类any 类型

MySQL数据类型 - 数字类型 - 数字类型语法

js简单类型与复杂类型