Необязательный массив UIImage равен nil после добавления изображений - PullRequest
0 голосов
/ 29 мая 2018

Я создал необязательный массив UIImage как следующий

var images: [UIImage]?

Затем у меня есть функция, которая получает в качестве параметра массив UIImage:

func process(_ images: [UIImage] {
    images.forEach {
        self.images?.append($0)
    }
    print("images nil?:", self.images == nil)
}

Как-то такфункция выводит, что мой self.images равен нулю, даже после добавления к нему объектов;но если я изменю свою forEach итерацию на просто:

self.images = images

Теперь она не распознает, что глобальная переменная равна nil.

Почему это происходит?

Ответы [ 4 ]

0 голосов
/ 29 мая 2018

Инициализируйте ваш массив следующим образом:

var images = [UIImage]()

Добавьте весь массив сразу как:

func process(_ images: [UIImage]) {
    self.images.append(contentsOf: images)
    print(self.images)
}

Нет необходимости делать ваш массив необязательным.Поскольку, если в массиве нет изображений, он будет пустым.Проверьте количество массивов вместо того, чтобы делать его необязательным.

0 голосов
/ 29 мая 2018

Вы никогда не инициализировали массив изображений.Перед добавлением, пожалуйста, сделайте следующее:

images = [UIImage]()
0 голосов
/ 29 мая 2018

Просто нужно сделать это

var images = [UIImage]()
func process(_ images: [UIImage] {
    self.images = images
}
0 голосов
/ 29 мая 2018

вам нужно инициализировать массив.

var images: [UIImage]? = []
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...