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

时间:2019-09-27 11:50:35

标签: ios arrays swift uiimage

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

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

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

copyArray.append(PictureArray) 

错误是

  

可选类型'UIImage'的值?必须解包为'UIImage'类型的值

3 个答案:

答案 0 :(得分:1)

尝试一下:

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

答案 1 :(得分:0)

尝试以下代码:

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]

答案 2 :(得分:0)

UIImage(named : "Image Name")始终返回optional UIImage

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

显然PictureArray的数组属于[UIImage?]Array<UIImage?>

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

显然[UIImage] != [UIImage?]

这就是为什么您会出错。

您可以使用高阶方法

PictureArray = PictureArray.map{$0 as? UIImage}

copyArray.append(PictureArray)

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

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