我的Assets.xcassets
文件夹中有以下文件夹
screenshot of the error - sorry, i dont have enough rep to show the image
我正在尝试访问ca
文件夹,然后访问payments
,然后访问其中的图像以填充UICollectionViewCell
。为了进行测试,我将其展开(我知道它不安全):
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: CellId, for: indexPath) as! MyCollectionViewCell
cell.paymentImageView.image = UIImage(named: "logos/ca/payments/x.png")!
return cell
我崩溃了,它说:
致命错误:解开可选值:文件时意外发现nil
我不确定为什么它崩溃了,文件在那里。对于每个国家/地区,在不同的文件夹中都有多个重复的文件名,这是一个问题吗?即xyz.png也可能在ca / payments和de / payments中
答案 0 :(得分:0)
图像不需要完整路径。仅使用名称(如果您直接添加图片)
cell.paymentImageView.image = UIImage(named: "x.png")!
(如果使用的是.xcassets)。使用图片集的名称代替单个图片
cell.paymentImageView.image = UIImage(named: "<IMAGE_SET_NAME>")!
答案 1 :(得分:0)
此崩溃是因为您尝试强制打开可选值。
UIImage(named: "logos/ca/payments/x.png")
是可选值。如果您的项目中不存在图像,则为零。
我们在获取图像时不需要放置路径,仅需要图像名称和扩展名文件,例如UIImage(named: "x.png")
cell.paymentImageView.image
也可以接受无图像。因此,仅cell.paymentImageView.image = UIImage(named: "x.png")
这行就可以了。
希望有帮助!