如何将数组复制到 UIImages 到另一个数组?

How to copy the array to UIImages into another array?

我正在尝试更改每个 collectionview 单元格的 tableView 内容,因为我正在创建一个空数组,我将更改每个单击的单元格的数组数据。我无法将数据从一个数组复制到另一个数组。

这是 swift 4.2,我只是想学习这些东西,所以不涉及任何后端。

var PictureArray = [UIImage(named: "s1") , UIImage(named: "s2"), UIImage(named: "s3"), UIImage(named: "s4"), UIImage(named: "s5") ]

copyArray.append(PictureArray) 

错误是

Value of optional type 'UIImage?' must be unwrapped to a value of type 'UIImage'

试试下面的代码:

var PictureArray = [UIImage(named: "s1") , UIImage(named: "s2"), UIImage(named: "s3"), UIImage(named: "s4"), UIImage(named: "s5") ]
var cpArray:[[UIImage]] = []
cpArray.append(PictureArray as! [UIImage])

此处 cpArray 在第 0 个索引中包含 PictureArray。

You can access 1st image of pictureArray using cpArray[0][0]

试试这个:

var PictureArray = [UIImage(named: "s1") , UIImage(named: "s2"), UIImage(named: "s3"), UIImage(named: "s4"), UIImage(named: "s5") ]
let arrCopy = pictures.map{[=10=]}

UIImage(named : "Image Name") 总是 return 一个 optional UIImage

var PictureArray = [UIImage(named: "s1") , UIImage(named: "s2"), UIImage(named: "s3"), UIImage(named: "s4"), UIImage(named: "s5") ]

显然PictureArray数组是这种类型[UIImage?]Array<UIImage?>

您正在尝试将数组插入到复制数组中,从错误消息中可以清楚地假定这是 [UIImage]

清楚[UIImage] != [UIImage?]

这就是您遇到错误的原因。

你可以使用高阶方法

PictureArray = PictureArray.map{[=11=] as? UIImage}

copyArray.append(PictureArray)

或者,如果您想使用幼稚的类型编码,请在 PictureArray

中播放一个循环
for case let image in PictureArray {
    if image != nil {
        copyArray.append(image)
    }
}