2016-03-03 68 views
0

我正在從解析中導入一個圖像和字符串,並將它放入一個單元格中,但它不會加載到視圖中,當我轉到另一個視圖並返回時,它會顯示。爲什麼會發生這種情況,我該如何解決?注意我在viewDidLoad中調用了它。爲什麼圖像和標籤不加載導入的信息?

query.findObjectsInBackgroundWithBlock { (objects: [PFObject]?, error: NSError?) -> Void in 
      if(error == nil){ 

       for object in objects!{ 
        if let name = object["Animal"] as? PFObject{ 
         self.animalname.append(name["Name"] as! String) 
         self.tableview.reloadData() 

        } 

        if let pic = object["Animal"]["Pic"] as? PFFile{ 
         pic.getDataInBackgroundWithBlock({ (data: NSData?, error: NSError?) -> Void in 
          if(error == nil){ 
           let image = UIImage(data: data!) 
           self.imagepro.append(image!) 


          } 

         }) 
         self.tableview.reloadData() 
        } 
      } 
     } 
+0

圖片也加載在後臺,所以你將不得不重新加載tableView,當它完成。您似乎還將圖片存儲在'imagepro'中,但您如何確保您爲正確的圖片獲取正確的圖片,因爲它們可能以任何順序運行?另外,應該使用'dispatch_async'在主隊列上調用reloadData。 – Michael

+0

UPDATE *當我嘗試訪問指針名稱時什麼也沒有發生 – stackerleet

+0

指針是什麼?你可以發佈你的'cellForRowAtIndexPath'代碼嗎?它如何知道要顯示哪個animalname和imagepro索引? – Michael

回答

1

似乎,你正在重新加載你的表格視圖,在圖像下載之前。試試這個

if let pic = object["Animal"]["Pic"] as? PFFile{ 
    pic.getDataInBackgroundWithBlock({ (data: NSData?, error: NSError?) -> Void in 
     if(error == nil){ 
      let image = UIImage(data: data!) 
      self.imagepro.append(image!) 
      dispatch_async(dispatch_get_main_queue()) { 
       self.tableview.reloadData() 
      } 
     } 
    }) 
} 
相關問題