Swift ios将数据和字符串存储在数组

时间:2017-04-11 17:33:51

标签: ios arrays swift tuples

我想知道是否可以在数组中存储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。

但是有没有办法使用数组来存储数据和字符串值?

我不确定元组是否是最佳解决方案             }

1 个答案:

答案 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