swift - 如何解决 Swift 5 中的 DispatchQueue 问题

标签 swift xcode grand-central-dispatch

更新 Xcode 和 Swift 5 后,此代码不起作用。谁能告诉我如何修复它?

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
    if let url  = NSURL(string: (mindata["img"] as? String)!), data = NSData(contentsOfURL: url)
    {
        dispatch_async(dispatch_get_main_queue(), {
            cell.img.image = UIImage(data: data)
        })
    }
})

最佳答案

看起来您正在尝试使用异步调度队列将图像渲染到单元格的 ImageView 中,对吧?如果我说的是正确的,你可以试试这个代码吗?

    if let url = URL(string: mindata["img"]) {
        do {
            let data = try Data(contentsOfURL: url)

            if data == nil {
                DispatchQueue.main.async {
                    cell.img.image = UIImage(data: data)
                }
            } else {
                print("Data is Nil")
            }
        } catch {
            //error from Data(contentsOfUrl to catch
        }
    } else {
        // the URL was bad!
    }

引用:https://www.hackingwithswift.com/example-code/strings/how-to-load-a-string-from-a-website-url

关于swift - 如何解决 Swift 5 中的 DispatchQueue 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55733262/

相关文章:

ios - xcode 选项卡栏 Controller 使用代码更改所选项目

objective-c - 哪个更容易使用? GCD 还是 NSOperation?

ios - DispatchQueue.asyncAfter 没有像我想象的那样工作?

ios - Swift - 捕获闭包 - Apple 的快速编程指南片段

ios - 语句 "public typealias AnyObject"如何使 AnyObject 成为协议(protocol)?

iphone - 只需在我的应用程序中进行控制即可发出 sigabrt 信号

swift - 如何确保 CLLocationManager 在主线程上延迟实例化?

ios - Swift 3 - SQLite 包装器

swift - 如何在 swift4 中为这个 json 数据创建一个结构?

ios - 快速设置关系数据库(sqlite)的步骤