Swift 3 分派异步警告
Swift 3 warning for dispatch async
我有这个代码:
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!)
}
}
}
我在 Swift 3:
收到此警告
'default' was deprecated in iOS 8.0: Use qos attributes instead
在第一行。
还没找到解决办法。有人吗?
尝试 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!)
}
}
}
而不是使用优先级参数:
DispatchQueue.global(priority: DispatchQueue.GlobalQueuePriority.default).async {
// ...
}
使用 qos
使用不同枚举的参数 DispatchQoS.QoSClass.default
但您也可以使用其枚举值正如 .default
:
DispatchQueue.global(qos: .default).async {
// ...
}
Swift 3对GCD(Grand Central Dispatch)带来了很多变化。
如果您正在使用 Dispatch Framework 创建 属性 并使用函数中的一些动画更新 UI,它可能看起来像这样。
let queue = DispatchQueue.global(qos: DispatchQoS.QoSClass.default)
// dispatch_after says that it will send this animation every nsec
queue.asyncAfter(deadline: when) {
DispatchQueue.main.async(execute: {
self.animate(withDuration: 0.5, animations: {
self.image.setWidth(35)
self.image.setHeight(35)
})
})
}
下面的代码在 Xcode 8.2.1
上针对 Swift 3.0 进行了测试
DispatchQueue.global(qos: .background).async {
let img2 = Downloader.downloadImageWithURL(imageURLs[1])
// Background Thread
DispatchQueue.main.async {
// Run UI Updates
self.imageView2.image = img2
}
}
其中 QoS 的 属性 是:
background, utility, `default`, userInitiated, userInteractive and unspecified
有关详细信息,请参阅此 apple document。
我有这个代码:
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!)
}
}
}
我在 Swift 3:
收到此警告'default' was deprecated in iOS 8.0: Use qos attributes instead
在第一行。
还没找到解决办法。有人吗?
尝试 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!)
}
}
}
而不是使用优先级参数:
DispatchQueue.global(priority: DispatchQueue.GlobalQueuePriority.default).async {
// ...
}
使用 qos
使用不同枚举的参数 DispatchQoS.QoSClass.default
但您也可以使用其枚举值正如 .default
:
DispatchQueue.global(qos: .default).async {
// ...
}
Swift 3对GCD(Grand Central Dispatch)带来了很多变化。
如果您正在使用 Dispatch Framework 创建 属性 并使用函数中的一些动画更新 UI,它可能看起来像这样。
let queue = DispatchQueue.global(qos: DispatchQoS.QoSClass.default)
// dispatch_after says that it will send this animation every nsec
queue.asyncAfter(deadline: when) {
DispatchQueue.main.async(execute: {
self.animate(withDuration: 0.5, animations: {
self.image.setWidth(35)
self.image.setHeight(35)
})
})
}
下面的代码在 Xcode 8.2.1
上针对 Swift 3.0 进行了测试DispatchQueue.global(qos: .background).async {
let img2 = Downloader.downloadImageWithURL(imageURLs[1])
// Background Thread
DispatchQueue.main.async {
// Run UI Updates
self.imageView2.image = img2
}
}
其中 QoS 的 属性 是:
background, utility, `default`, userInitiated, userInteractive and unspecified
有关详细信息,请参阅此 apple document。