2015-10-16 328 views
0

我正试图将数据访问到包含某些图像URL的数组中。无法从数组中获取数据

每当我尝试创建我的图像,我的应用程序永远不会停止加载,并作出一个循环,顺便说一句,我的数组永远不会停下来填充。

这是我的代码:

class swipe : UIViewController, KinderDelegate {  

    var urls = [NSURL!]() 
    var pictureApp: String! 

    func fetchdata(int: Int, completion: (()->())?) { 

     for repo in repo { 
        urls.append(NSURL(string: repo.picture_url!)!) 
        dump(repos) 
        i++ 
        NSLog("nombre de line = %i", PicArray.count) 

        pictureApp = repo.picture_url 
     } 

     if let img = imageCache[pictureApp!] { 
        let newCard = Model() 
        newCard.image = img 
        print("image présente") 
     }else { 

      for url in urls{ 
       if #available(iOS 8.0, *) { 
        let newCard = Model() 
        dispatch_async(dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0)) { 
        if let data = NSData(contentsOfURL: url) { 
           let image = UIImage(data: data)! 
           newCard.image = (image: image) 
           dispatch_async(dispatch_get_main_queue()) { 
             newCard.image 
           } 
        } 
        } 
        self.data.append(newCard) 
       }        
      } 
     } 

     if self.data.count == 4 { 
      completion!() 
      return 
     } else { 
      self.fetchData(0, completion: completion) 
     } 
    } 

} 

我如何可以利用它们在我的阵列来创建一些图像的URL?

+1

不应该是 '回购回购' – Azzaknight

+0

除了Azzaknight,'回购'从哪里来? – adolfosrs

+0

谢谢大家,实际上我不知道为什么我只是没有使用我的循环“repo for repos”,我尝试过使用它,并将我的代码更改为我的更新代码,并且所有工作,谢谢:) – f1rstsurf

回答

0

像由Azzaknight的建议,我试图与循环“回购的回购协议”,并改变了我的代码是:现在

do { 
    data = try NSData(contentsOfURL: NSURL(string: repo.picture_url!)!, options: NSDataReadingOptions.DataReadingMappedIfSafe) 
    let image = UIImage(data: data!)! 
     newCard.image = (image: image) 
     dispatch_async(dispatch_get_main_queue()) { 
             newCard.image 
            } 
           } 
           catch { 
            print("Handle \(error) here") 
           } 
         } 
       } 
       self.data.append(newCard) 
      }  

一切工作!