访问资产文件夹中的内部文件夹

时间:2020-02-05 10:06:18

标签: ios swift uicollectionview uicollectionviewcell

我的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中

2 个答案:

答案 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")这行就可以了。

希望有帮助!

相关问题