Потерпи меня, пока я это объясняю,
Я создаю чат, в котором пользователи могут загружать фотографии, чтобы их могли видеть другие. Когда пользователь нажимает на иконку, он может загрузить фотографию в мою базу данных Firebase (это происходит успешно, и я уже проверил это). URL-адрес фотографии передается в базу данных сообщений и загружается в созданное мной табличное представление (я знаю, что URL-адрес фотографии существует из-за операторов печати и проверки базы данных). Тем не менее, когда я иду, чтобы загрузить фотографию с URL, приложение вылетает, говоря, что оно нашло ноль при развертывании моего необязательного (imageData) - это происходит внутри оператора if, который я должен выполнять только после проверки, что imageData не ноль , У меня также есть оператор print перед этим оператором if, который подтверждает, что данные не равны нулю. Почему он находит ноль при распаковке данных? Заранее спасибо за помощь.
let notificationCell = tableView.dequeueReusableCell(withIdentifier: "messageImageCell", for: indexPath) as! MessageCellForPhotos
notificationCell.clipsToBounds = true
let newPhotoURL = NSURL(string: messagesArray[indexPath.row].userSentImage)! as URL
print("\(newPhotoURL) Hello World This Time")
DispatchQueue.global().async {
let imageData = try? Data(contentsOf: newPhotoURL) //make sure your image in this url does exist, otherwise unwrap in a if let check / try-catch
DispatchQueue.main.async {
print(imageData)
if imageData != nil {
notificationCell.sentImageView.image = UIImage(data: imageData!)
}
}
}
return notificationCell