我想知道是否可以在数组中存储Data和String? 我需要一种方法来存储用户选择的图像以及数组中的图像名称,以便稍后我可以在上传时将其附加到我的API请求中。
现在我正在使用一个数组元组,后来我将数据和字符串附加到
var imgArray = [(Data, String)]()
然后我将数据添加到该数组元组中:
if let firstImage = self.firstImage {
if let firstImageData = firstImage.compressImage() {
self.imgArray.append(firstImageData, self.randomImageName(length: 15))
}
我将上面的代码用于用户上传的每个图像,并且它可以正常工作,imgArray
将填充数据和字符串,我稍后将其发送到我的API。
但是有没有办法使用数组来存储数据和字符串值?
我不确定元组是否是最佳解决方案 }
答案 0 :(得分:4)
Apple不鼓励使用元组作为数据源。
元组对临时的相关值组很有用。它们不适合创建复杂的数据结构。如果您的数据结构可能超出临时范围,则将其建模为类或结构,而不是作为元组
(面向对象)Swift方式是一个结构:
struct ImageData {
var data : Data
var name : String
}
var imgArray = [ImageData]()
if let firstImage = self.firstImage {
if let firstImageData = firstImage.compressImage() {
self.imgArray.append(ImageData(data:firstImageData, name:self.randomImageName(length: 15))
}
好处是按名称获取成员
let imageName = imgArray[0].name