我正在将用户图像上传到Firebase存储中,但是用户图像数据被迫解开包装以设置错误
可选类型'UIImage的值?必须解包为type的值'UIImage'
我如何设置我的代码而不会遇到此错误,以成功将我的图像成功上传到Firebase存储中,我缺少什么?
在展开一个可选值时意外发现nil:
let storage = Storage.storage()
let storageRef = storage.reference()
let image = UIImage(named: "ProfileImage")
let data = image?.pngData()
let imageData = image?.jpegData(compressionQuality: 0.9)
let uiImage: UIImage = UIImage(data: imageData!)!
let starsRef = storageRef.child("ProfileImage.jpg")
let metadata = StorageMetadata()
metadata.contentType = "ProfileImage/jpeg"
let uploadTask = starsRef.putData(data!, metadata: nil) { (metadata, error) in
guard let metadata = metadata else {
return
}
let size = metadata.size
starsRef.downloadURL { (url, error) in
guard let downloadURL = url else {
return
}
}
}
将let data
设为guard let data
,这样,当您需要将其设为非可选时,就不必强行拆包。我要说通常避免一般用力展开。