2017-01-22 85 views
0

如果與單元格關聯的文件位於設備上,我試圖添加圖像並將其添加到collectionView單元格。如果文件存在,將圖像添加到collectionView單元

該文件在那裏,所以下面的代碼取消隱藏圖像,但是我得到一個錯誤,它發現零試圖展開可選。

什麼是錯的代碼什麼想法?

enter image description here

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    let cell: JourneyCollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! JourneyCollectionViewCell 

    // query if file is on LDS and add image to indicate 
    let cellPartName = self.partArray[indexPath.item].name 
    let checkQuery = PFQuery(className: "downloadedAudio") 
     checkQuery.whereKeyExists(cellPartName) 
     checkQuery.fromLocalDatastore() 
     checkQuery.getFirstObjectInBackground(block: { (object, error) in 
      if error != nil || object == nil { 
       print("The file does not exist locally on the device, hide the image.") 
       //cell.ImageDownloaded.image = UIImage(named: "") 

       // crashes on this line 
       cell.ImageDownloaded.isHidden = true 
      } else { 
       print("the file already exists on the device, show the image.") 
       //cell.ImageDownloaded.image = UIImage(named: "download") 

       // crashes on this line 
       cell.ImageDownloaded.isHidden = false 
      } 
     }) 


    return cell 

} 




the file already exists on the device, show the image. 
fatal error: unexpectedly found nil while unwrapping an Optional value 
(lldb) 

圖像 「下載」 是磁帶。

+0

'cell'的定義在哪裏? – BallpointBen

+0

崩潰說什麼?大部分細節都是有用的。 – raidfive

+0

我似乎沒有在您的方法中定義任何'cell'變量。你忘記了離隊嗎? 'let cell = collectionView.dequeueReusableCell(withReuseIdentifier:reuseIdentifier,for:indexPath);' – ilbesculpi

回答

2

一個快速的注意。在聲明一個變量時,你應該總是使用camelCase。因此,ImageDownloaded應該是imageDownloaded

在這裏代碼非常幾行,它似乎崩潰在這條線:

cell.ImageDownloaded.isHidden = false 

這意味着變量ImageDownloaded大概是nil變量。根據我的經驗,這可能是由於您的單元類的代碼中聲明瞭變量,但關聯的UIImageView未連接到聲明。因此,從故事板看,它看起來像是存在的,並且從代碼看它存在,但是當你嘗試訪問它時突然中斷。

如果您刪除並將其中任一部分粘貼回來,可能會發生這種情況。它看起來相同,但連接不再存在。要解決它,只需控制 - 再次拖動到代碼聲明旁邊的空圈。

+0

你是對的。我是一個木偶,從界面生成器到我的課程的鏈接被打破了。 – Pippo

相關問題