ios - 如果图像实际上是从 url 下载的,我如何在 swift 5 中知道?

标签 ios swift urlsession imagedownload

我正在使用带有 ScrollView 的页面控件,并希望将下载的图像添加到 ScrollView 中,直到提供的链接不再下载图像。现在,链接下载图像,直到索引不大于 7,但循环仍在继续。显然它不会返回错误,尽管没有要下载的图像,但仍然可以加载 url。这是我在索引大于 7 的浏览器中手动粘贴 url 时得到的。

enter image description here

这是我使用的代码。我想知道是否有办法测试是否下载了实际的图像。

var test = 15

func setupScreens() {
        for index in 1..<test {
                // 1.
            frame.origin.x = scrollView.frame.size.width * CGFloat(index - 1)
            frame.size = scrollView.frame.size

                // 2.
            let imageView = UIImageView(frame: frame)


            let urlSession = URLSession(configuration: .default)
            let url = URL(string: "https://jarisstoriesphotographyphoto.files.wordpress.com/2020/06/menu\(index).png")!

            // Create Data Task

            let dataTask = urlSession.dataTask(with: url) { [weak self] (data, _, error) in
                if let error = error {
                    print(error)
                    self?.test = 0 // should end the loop
                }
                if let data = data {
                    DispatchQueue.main.async {
                        // Create Image and Update Image View
                        imageView.image = UIImage(data: data)
                        self?.scrollView.addSubview(imageView)
                    }
                }
            }
            // Start Data Task
            dataTask.resume()

        }

最佳答案

在代码中设置图像之前,您可以像这样简单地检查:

DispatchQueue.main.async {
  if let image = UIImage(data: data) { //Image is available in the url
     imageView.image = image
     self?.scrollView.addSubview(imageView) 
  }else {
     print("Image not available in this url")
  }
}

继续编码............ :)

关于ios - 如果图像实际上是从 url 下载的,我如何在 swift 5 中知道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62468857/

相关文章:

ios - iOS 和 watchOS 上的 CloudKit + CoreData 同步不起作用

使用 URLSession 进行 Swift API 调用会出现 504 错误

ios - 插入符号 (^) 是什么,它在哪里定义?

objective-c - 按钮突然响应外部触摸,而不是内部触摸

ios - 跟踪操作队列中的操作

swift - 如何快速更改图像方向

swift - 有人可以帮助将 URLSession 从 Swift 转换为 Kotlin

swift - 使用 RxSwift 和 URLSession 处理 401 状态

ios - 如何快速使用reduce(into :)

swift - Swift 本地化