Инициализатор для условного связывания должен иметь тип Optional, а не '[AnyHashable: Any]'
Когда я печатаю вот так:
func onAppOpenAttribution(_ attributionData: [AnyHashable : Any]!) {
if let data = attributionData {
if let link = data["link"]{
print("link: \(link)")
}
}
}
Я получил ошибку "Инициализатор для условной привязки должен иметь необязательный тип, а не" [AnyHashable: Any] "" в этой строке if let data = attributionData
Как это исправить?
1 ответ
Решение
func onAppOpenAttribution(_ attributionData: [AnyHashable : Any]?) {
ваши attributionData должны быть необязательного типа, if let data = attributionData
если let case используется для безопасного развертывания необязательного значения. Но в настоящее время вы передаете ему необязательное значение. Итак, у вас есть два варианта. Либо сделать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)")
}
}
}