如果文件存在,将图像添加到 collectionView Cell
Add image to collectionView Cell if file exists
如果与单元关联的文件位于设备上,我正在尝试向 collectionView 单元添加图像。
文件在那里,所以下面的代码取消隐藏图像,但是我得到一个错误,它发现 nil 试图解开可选。
代码有什么问题吗?
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)
图像“下载”在磁带中。
一个简短的笔记。声明变量时,您应该始终使用驼峰命名法。因此,ImageDownloaded
应该是 imageDownloaded
。
这里极少的几行代码,好像是在这一行崩溃了:
cell.ImageDownloaded.isHidden = false
这意味着变量ImageDownloaded
很可能就是nil
的变量。根据我的经验,这可能是由于您在单元格 class 的代码中声明了变量,但关联的 UIImageView
未连接到声明。因此,从情节提要来看,它似乎存在,从代码来看它似乎存在,但是当您尝试访问它时,它突然中断了。
如果您删除其中任一部分然后又将其粘贴回去,则可能会发生这种情况。看起来一样,但连接不再存在。要修复它,只需 control-drag 再次进入代码声明旁边的空圆圈。
如果与单元关联的文件位于设备上,我正在尝试向 collectionView 单元添加图像。
文件在那里,所以下面的代码取消隐藏图像,但是我得到一个错误,它发现 nil 试图解开可选。
代码有什么问题吗?
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)
图像“下载”在磁带中。
一个简短的笔记。声明变量时,您应该始终使用驼峰命名法。因此,ImageDownloaded
应该是 imageDownloaded
。
这里极少的几行代码,好像是在这一行崩溃了:
cell.ImageDownloaded.isHidden = false
这意味着变量ImageDownloaded
很可能就是nil
的变量。根据我的经验,这可能是由于您在单元格 class 的代码中声明了变量,但关联的 UIImageView
未连接到声明。因此,从情节提要来看,它似乎存在,从代码来看它似乎存在,但是当您尝试访问它时,它突然中断了。
如果您删除其中任一部分然后又将其粘贴回去,则可能会发生这种情况。看起来一样,但连接不再存在。要修复它,只需 control-drag 再次进入代码声明旁边的空圆圈。