Xcode заставляет меня развернуть значение, которое не является обязательным - PullRequest
0 голосов
/ 26 ноября 2018

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

Вот моя модель пользователя:

class UserProfile {
    var uid: String
    var username: String
    var photoURL: URL
    init(uid: String, username: String, photoURL: URL){
        self.uid = uid
        self.username = username
        self.photoURL = photoURL
    }
}

Вот кусок кода, который дает мне xcodeошибки в:

override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        if let line = line {
            ImageService.downloadImageFrom(url: self.line?.author.photoURL, completion: { (image) in
                self.imageView.image = image
            }) // The error is in this line.
            self.username.text = line.author.username
            self.park.text = line.park
            self.attraction.text = line.attraction
            self.timestamp.text = line.createdAt.calendarTimeNow()
        }
    }

Как вы заметили, атрибут photoURL класса UserProfile не является опциональным.Xcode требует от меня использовать (self.line? .Author.photoURL)!принудительно развернуть это значение, которое не является необязательным.Что может происходить?Чего мне не хватает?

Большое спасибо за внимание.

1 Ответ

0 голосов
/ 26 ноября 2018

Проблема не с photoURL.Проблема в том, что, несмотря на правильное развертывание необязательного свойства line, вы по ошибке пытаетесь использовать все еще необязательное self.line.Поскольку это необязательно, self.line?.author.photoURL в целом необязательно.

Просто измените self.line?.author.photoURL на line.author.photoURL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...