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

Posted

技术标签:

【中文标题】如何将数组复制到 UIImages 到另一个数组中?【英文标题】:How to copy the array to UIImages into another array? 【发布时间】:2019-09-27 11:50:35 【问题描述】:

我正在尝试更改每个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) 

错误是

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

【问题讨论】:

分享copyArray声明代码,它有什么数据类型? 如果您想要复制数组中的所有项目,那么为什么不使用 copyArray = PictureArray。 @MumtazHussain mumtaz bhai, chakkar aesy tha k mujhy aik he screen p table view aur collection view change karna tha, to main chah raha tha k har collection view p click honay p array change karun, uskay liye mene 数组复制 karna,lekin ab mene isko 逻辑上更简单的方法主要是 kar lia hai,btw copyarray 是 UIImage 类型。并给出错误“'UIImage?'必须解包为“UIImage”类型的值” @Abhishek 我也试过这种方式,错误是一样的,现在我通过使用复制数组以外的其他逻辑解决了这个问题。 【参考方案1】:

试试这个:

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

【讨论】:

【参考方案2】:

试试下面的代码:

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]

【讨论】:

【参考方案3】:

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?>这种类型

您正在尝试插入数组以复制数组,从错误消息中可以清楚地假定这是[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)
    


【讨论】:

以上是关于如何将数组复制到 UIImages 到另一个数组中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 UIImages 数组添加到集合视图

如何在 C# 中将数组的一部分复制到另一个数组?

如何在 xCode 中保存 UIimages 数组(swift)

如何将 Php 数组变量的值复制到另一个数组

无法将数组的内容复制到另一个数组中......得到奇怪的数字

如何通过按 UIButton 从数组中切换 UIViewController 中的 UIImages