2017-07-04 3 views
1

J'utilise DispatchQueue.global() pour télécharger des images à partir urls qui sont stockés dans une URL de tableau, ce sont les étapes:en option a été trouvé nulle lors du téléchargement de l'image à l'aide rapide DispatchQueue 3

Array of urls --> let data = contentsOf: array[url] --> display img 

mais je reçois une erreur comme, vérifiez l'image ci-dessous:

Problem

et c'est ce qui est d'imprimer:

fatal error: unexpectedly found nil while unwrapping an Optional value 

code format texte:

func updateView(){ 

    for i in 0..<testArray1.count { 

     let ImgUrl = URL (string: testArray1[i])! 

     DispatchQueue.global().async { 

      do { 

       let data = try Data(contentsOf: ImgUrl) 
       DispatchQueue.global().sync { 

        self.imgArr.append(UIImage(data: data)!) 

       } 

      } catch { 
       //handle the error 
      } 
     } 

    } 
} 

espère que cela peut vous aider à me aider.

merci à l'avance

Répondre

0

Il est possible que vous avez obtenu ces données, mais pas manqué de créer l'image. Essayez cette

 DispatchQueue.global().sync { 
      for i in 0..<testArray1.count { 
       let imgUrl = URL(string: testArray1[i])! 

       do { 
        let data = try Data(contentsOf: imgUrl as URL) 
        if let image = UIImage(data: data) { 
         imgArr.append(image) 
        } 
       } catch { 
        print("Unable to load data: \(error)") 
       } 
      } 
     } 
+0

Cela fonctionne bien, cependant, je suis l'accaparement de 162 images du tableau et les urls sont en ligne, est de toute façon à afficher les images qui a été ajouté au tableau d'image tandis que les autres sont en cours de téléchargement? @Lawliet –

+0

Eh bien, cela ressemble à une autre question, mais de toute façon vous pouvez créer un tableau de caches pour stocker les images et montrer ce que vous avez chargé. Jetez un oeil à cet exemple http://www.kaleidosblog.com/uicollectionview-image-gallery-download-and-display-images-inside-the-cell – Lawliet

+0

Yh je sais une autre question désolé –