发送异步的Swift 3警告

ash*_*yla 32 warnings ios dispatch-async deprecation-warning swift3

我有这个代码:

DispatchQueue.global(priority: DispatchQueue.GlobalQueuePriority.default).async {
                let url = URL(string: itemImageURL )
                let data = try? Data(contentsOf: url!)
                if data != nil {
                    DispatchQueue.main.async{
                        cell.advImage!.image = UIImage(data: data!)
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)

我在Swift 3中收到此警告:

在iOS 8.0中不推荐使用"default":改为使用qos属性

在第一行.

还没有找到解决方案.有人吗?

小智 64

尝试qos: DispatchQoS.QoSClass.default而不是priority: DispatchQueue.GlobalQueuePriority.default

DispatchQueue.global(qos: DispatchQoS.QoSClass.default).async {
            let url = URL(string: itemImageURL )
            let data = try? Data(contentsOf: url!)
            if data != nil {
                DispatchQueue.main.async{
                    cell.advImage!.image = UIImage(data: data!)
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

  • 由于`.default`是默认值,你也可以使用:`DispatchQueue.global().async {...}` (11认同)

Wil*_*son 5

而不是使用优先级参数:

DispatchQueue.global(priority: DispatchQueue.GlobalQueuePriority.default).async {
 // ...
}
Run Code Online (Sandbox Code Playgroud)

使用qos不同枚举的参数,DispatchQoS.QoSClass.default但你也可以使用它的枚举值.default:

DispatchQueue.global(qos: .default).async {
 // ...
}
Run Code Online (Sandbox Code Playgroud)

Swift 3为GCD(Grand Central Dispatch)带来了许多变化.