Почему UIImage не является обязательным в Swift, когда он имеет значение по умолчанию - PullRequest
0 голосов
/ 15 декабря 2018

Я пытаюсь написать функцию, которая выбирает картинку для контакта.Поскольку я устанавливаю значение по умолчанию, я думаю, что компилятор будет в порядке, но когда я пытаюсь вернуть результат в закрытии завершения, он выдает ошибку: Значение необязательного типа UIImage?должен быть развернут в значение типа UIImage.Что мне нужно сделать?

 func getContactImage (contact:Contacts, completion:@escaping (_ myimage: UIImage)->()){//open 1 method
        let defaultimg = UIImage(named:"headshot.png")
        var animg = self.loadImageNamed(contact.pic) ?? defaultimg
        if (contact.first==nil&&contact.last==nil) {
            if !(contact.co==nil) {
                animg = UIImage(named:"company.png")
            }
        }
        completion(animg) //ERROR HERE
    }

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Поскольку ваше изображение ("headshot.png") может отсутствовать в вашем каталоге.Вот почему это необязательно.Например, ниже не является обязательным.

let image = UIImage()

0 голосов
/ 15 декабря 2018

Но defaultimg и изображение с именем company.png тоже может быть nil.Если вы знаете, что эти изображения существуют, вы можете принудительно развернуть их:

let defaultimg = UIImage(named: "headshot.png")!

animg = UIImage(named: "company.png")!
...