1

当我这样输入时:

func onAppOpenAttribution(_ attributionData: [AnyHashable : Any]!) {
    if let data = attributionData {
        if let link = data["link"]{
            print("link:  \(link)")
        }
    }
}

我在此行收到错误“条件绑定的初始化程序必须具有可选类型,而不是'[AnyHashable:Any]'”if let data = attributionData

如何修复它?

4

1 回答 1

3
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)")
     }
  }
}
于 2020-01-22T05:17:27.373 回答