Неустранимая ошибка - ноль при развертывании дополнительного устройства с AWS S3 - PullRequest
0 голосов
/ 09 июня 2018

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

Поток 1 - фатальная ошибка - неожиданно обнаружен ноль при развертывании Необязательногозначение

Это строка кода, в которой отображается ошибка ...

private func avatarURL(for username: String) -> URL {
    return "https://s3.amazonaws.com/rest-of-link/\(username.lowercased())-avatar.jpg".URL!
}

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

1 Ответ

0 голосов
/ 09 июня 2018

Похоже на!mark (force unwrap) вылетает из вашего приложения.попробуйте это:

private func avatarURL(for username: String) -> URL? {
    return "https://s3.amazonaws.com/rest-of-link/\(username.lowercased().addingPercentEncoding(withAllowedCharacters: .urlPathAllowed))-avatar.jpg".URL
}

Обязательно безопасно разверните avatarURL (для имени пользователя: "someUsername").Вы можете сделать что-то вроде этого:

if let url = avatarURL(for username: "someUsername") {
     // set imageView.image here because URL is valid
} else {
    //maybe set imageView.image = nil
}

РЕДАКТИРОВАТЬ: попробуйте это:

private func avatarURL(for username: String) -> URL? {
   let lowercase = username.lowercased()
   return URL(string: "https://s3.amazonaws.com/rest-of-link/\(lowercase)-avatar.jpg")
}
...