ios - 条件绑定的初始化程序必须具有 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
如何修复它?
解决方案
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)")
}
}
}
推荐阅读
- powershell - 将子文件夹名称导出为路径,并为不同位置的每个父子文件夹创建一个 csv
- pg-promise - 如何在 pg-promise 中将数组作为 rowMode="array" 的参数传递
- java - 如何使用存储访问框架在 android q 的 Downloads 中创建目录
- amazon-web-services - AWS Kubernetes 上的 JHipster Registry 不显示 Swagger API
- safari - 如何使用 ITP 在 Safari IFrame 中跟踪 OpenID Connect 的状态?
- azure-storage - 使用 AzCopy 将 ADLS 同步到 Azure 存储
- java - 如何将值从一个类的 onOptionsItemSelected 方法传递给另一个类
- google-chrome - POST请求chrome扩展开发中的CORS
- azure - 如何将 azure cli 变量传递给 Azure Devops 变量?
- vba - 更新用户表单时屏幕闪烁问题