arrays - 无法从数组获取数据

标签 arrays swift loops url nsdata

我在尝试将数据访问到包含某些图像 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 来创建一些图像?

最佳答案

就像 Azzaknight 所建议的那样,我尝试使用循环“repo for repos”并为此更改了我的代码:

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)
           }       

现在一切正常!

关于arrays - 无法从数组获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33169417/

相关文章:

python - 在一行中获取数组输入,避免 python3 中的空格

swift - 在另一个类的 ScrollView 中添加图像?

java - 是否可以在不使用 hasNextLine 的情况下检查输入是否为整数,如果为 0 则退出循环?

c - C 中数据结构的排序数组

Java - 转换字符串中的字符(数组、if-then、 HashMap )的最佳方法?

java - 你能像在 Matlab 中那样在 Java 中操作数组吗?

c++ - swift 中 uint8_t 的等价物是什么?

ios - 如何判断 malloc 是否在 iOS 上 swift 失败?

PHP 循环语法错误回显选择

javascript - 在 for 循环中生成 .click 函数