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)
}
}