作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 downloadURL =metadata.downloadURL
时遇到问题。 let
必须在前面才能工作吗?当我这样做时,它说
definition conflicts with previous value and value of type ‘StorageMetaData’ has no member ‘downloadURL’
任何帮助将不胜感激,因为到目前为止我还没有找到任何帮助。
// You can also access to download URL after upload.
storageRef.downloadURL { (url, error) in
guard let downloadURL = url else {
// Uh-oh, an error occurred!
return
}
// Metadata contains file metadata such as size, content type, and download URL
downloadURL = metadata.downloadURL
最佳答案
编译器会告诉你出了什么问题。您使用 guard let
创建 let 常量 downloadURL
。一旦该常量具有值,就无法更改。然后你尝试改变它的值。这是不允许的。
您的代码令人困惑,因为您首先为 downloadURL
分配了一个防护让,然后尝试为 downloadURL
分配一个完全不同的值。 (在第二种情况下,您使用 metadata.downloadURL
。
为什么为 downloadURL
分配一个值,然后立即忘记该值并用其他值替换它?
相反,您可以编写如下代码:
storageRef.downloadURL { (url, error) in
//Use the name `inputURL` to indicate this is the URL passed to the closure
guard let inputURL = url else {
// Uh-oh, an error occurred!
return
}
// Metadata contains file metadata such as size, content type, and download URL
let downloadURL = metadata.downloadURL
}
}
关于swift - 无法分配值 : ‘downloadURL’ is a let constant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56009151/
我是一名优秀的程序员,十分优秀!