Swift 我试图将图像下载到firebase,但我收到一个错误";条件绑定的初始值设定项必须具有可选类型,而不是';“字符串”;

Swift 我试图将图像下载到firebase,但我收到一个错误";条件绑定的初始值设定项必须具有可选类型,而不是';“字符串”;,swift,firebase,firebase-storage,Swift,Firebase,Firebase Storage,我试着在Youtube上看一段视频,试着下载图片并展示出来,但有一行我不知道该怎么做 var pet: Pet! { didSet{ ImgPhotoPet.image = UIImage(named: "Drako") viewContenido.frame.size.height = 140.0 ImgPhotoPet.frame.size.width = (viewContenido.frame.si

我试着在Youtube上看一段视频,试着下载图片并展示出来,但有一行我不知道该怎么做

var pet: Pet! {
        didSet{

            ImgPhotoPet.image = UIImage(named: "Drako")
            viewContenido.frame.size.height = 140.0
            ImgPhotoPet.frame.size.width = (viewContenido.frame.size.width * 0.32) / 100
            //ImgBackgroundPet.frame.size.width = (viewContenido.frame.size.width * 0.68) / 100
            CardInfo.layer.cornerRadius = 10.0
            ImgPhotoPet.layer.cornerRadius = 15.0
            ImgPhotoPet.layer.masksToBounds = true
            LblNamePet.text = pet.namePet
            LblAgePet.text = pet.birthDay


在这一行中,我有一个错误“条件绑定的初始值设定项必须具有可选类型,而不是'String'”



您的变量
pet.urlmagepet
是非可选的,因此
如果let
是冗余的。您只需要
let

这将修复语法错误

let imageDownloadURL = pet.URLImagePet
let imageStorageRef = Storage.storage().reference(forURL: imageDownloadURL)
etc...

不相关的样式点:尝试对变量使用小写的大小写名称
urlmagepet
vs
urlmagepet
。大写字母使名称看起来像类名,而不是类的实例

感谢您的回答和建议,我将开始使用它。将来,请包含完整的代码-问题中显示的pet var/类没有名为
urlmagepet
的属性或函数,因此我们也不知道这是什么。对未来的读者来说,更新这个问题可能会很方便,这样他们就可以看到该属性的用例了。好吧,Jay,谢谢,对不起,我在这里和xcode中也很忙,下次我尝试包含所有代码:),但是Warren的回答是对的,我删除了
if
,仅此而已
            let imageStorageRef = Storage.storage().reference(forURL: imageDownloadURL)

            imageStorageRef.getData(maxSize: 2 * 1024 * 1024, completion: { [weak self] (data, error) in
                if let error = error {
                    print("Error \(error)")
                } else {
                   if let imageData = data{
                        DispatchQueue.main.sync {
                            let image = UIImage(data: imageData)
                            self?.ImgPhotoPet.image = image
                        }
                    }
                }
            })
        }
    }
}
let imageDownloadURL = pet.URLImagePet
let imageStorageRef = Storage.storage().reference(forURL: imageDownloadURL)
etc...