条件绑定的初始化程序必须具有 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]'