更改 swift 中的集合可选值?

change collection optional value in swift?

rowDescriptorAnyObject? 类型,我将 self.rowDescriptor?.value 转换为 images。我想将图像添加到 self.rowDescriptor?.value。我没能像下面那样做。 images 有一个值。但 self.rowDescriptor?.value 仍然是空的。我找不到任何关于它的文件。这是什么原因。

    var images :[UIImage] = self.rowDescriptor?.value as! [UIImage]
    if let image = editedImage {
        images.append(image)
    } else {
        images.append(originalImage!)
    }

Swift中的数组类型是一个结构。 swift 中的结构是值类型而不是引用类型。澄清一下:

images 包含 self.rowDescriptor?.value

的副本

images.append( 更改副本 images,而不是 rowDescriptor.value

中的原始值

您想更改 self.rowDescriptor?.value,因此只需将其设置为新更改的 images 数组即可。

self.rowDescriptor?.value = images

td;dr

要修复,请添加 self.rowDescriptor?.value = images