Как скопировать массив в UIImages в другой массив? - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь изменить содержимое таблицы для каждой ячейки коллекции, для этого я создаю пустой массив и изменяю данные массива для каждой нажатой ячейки.Я не могу скопировать данные из массива в другой.

Это быстрый 4.2, и я просто пытаюсь изучить материал, так что никакой бэкэнд не задействован.

var PictureArray = [UIImage(named: "s1") , UIImage(named: "s2"), UIImage(named: "s3"), UIImage(named: "s4"), UIImage(named: "s5") ]

copyArray.append(PictureArray) 

и ошибка

Значение необязательного типа 'UIImage?'должен быть развернут в значение типа 'UIImage'

Ответы [ 3 ]

0 голосов
/ 27 сентября 2019

Попробуйте:

var PictureArray = [UIImage(named: "s1") , UIImage(named: "s2"), UIImage(named: "s3"), UIImage(named: "s4"), UIImage(named: "s5") ]
let arrCopy = pictures.map{$0}
0 голосов
/ 27 сентября 2019

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

0 голосов
/ 27 сентября 2019

попробуйте следующий код:

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 содержит PictureArray в 0-м индексе.

You can access 1st image of pictureArray using cpArray[0][0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...