条件绑定的初始化程序必须具有 Optional 类型,而不是 '() -> Data?'
Posted
技术标签:
【中文标题】条件绑定的初始化程序必须具有 Optional 类型,而不是 \'() -> Data?\'【英文标题】:Initializer for conditional binding must have Optional type, not '() -> Data?'条件绑定的初始化程序必须具有 Optional 类型,而不是 '() -> Data?' 【发布时间】:2018-11-20 15:07:38 【问题描述】:我遇到了一个问题,我想将图像上传到 Firebase 存储/数据库。当我创建这行代码时,我收到了这个问题:
if let uploadData = UIImage.pngData(self.profileImage.image!)
此行的错误如标题所述:条件绑定的初始化程序必须具有 Optional 类型,而不是 '() -> Data?'
对如何解决这个问题有什么建议吗?
【问题讨论】:
【参考方案1】:你可以试试
guard let uploadData = profileImage.image?.pngData() else return
如果需要的话让
if let uploadData = profileImage.image?.pngData()
pngData()
是UIImage
实例的实例方法
https://developer.apple.com/documentation/uikit/uiimage/1624096-pngdata
在您的代码中,您认为它是不正确的类方法
【讨论】:
以上是关于条件绑定的初始化程序必须具有 Optional 类型,而不是 '() -> Data?'的主要内容,如果未能解决你的问题,请参考以下文章
条件绑定的初始化程序必须具有Optional类型,而不是'String'
条件绑定的初始化器必须具有 Optional 类型,即使它是 Optional 类型
条件绑定:if let error - 条件绑定的初始化程序必须具有可选类型
条件绑定:if let error - 条件绑定的初始化程序必须具有可选类型
如何修复条件绑定的初始化程序必须具有可选类型,而不是“字符串”? [复制]
用于条件绑定的 Swift Initializer 必须具有 Optional 类型,而不是 '[AVCaptureDevice]'