当我这样输入时:
func onAppOpenAttribution(_ attributionData: [AnyHashable : Any]!) {
if let data = attributionData {
if let link = data["link"]{
print("link: \(link)")
}
}
}
我在此行
if let data = attributionData
上收到错误消息“用于条件绑定的初始化程序必须具有可选类型,而不是'[AnyHashable:Any]'”如何修复?
最佳答案
func onAppOpenAttribution(_ attributionData: [AnyHashable : Any]?) {
您的attributionData应该是可选类型,如果使用let case来安全地解开可选值,则为
if let data = attributionData
。但是目前您正在传递一个非可选值。因此,您有两个选择。可以将attributionData
设置为可选,或删除if let statement
选项1:
func onAppOpenAttribution(_ attributionData: [AnyHashable : Any]?) {
if let data = attributionData {
if let link = data["link"]{
print("link: \(link)")
}
}
}
选项2:
func onAppOpenAttribution(_ attributionData: [AnyHashable : Any]) {
let data = attributionData
if let link = data["link"]{
print("link: \(link)")
}
}
}
关于ios - 条件绑定(bind)的初始化程序必须具有Optional类型,而不是'[AnyHashable:Any]',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59853052/