我更新了 swift 3,发现了很多错误。这是其中之一:
Ambiguous reference to member 'subscript'
对于以下行
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any]) -> Bool {
FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options["UIApplicationOpenURLOptionsSourceApplicationKey"] as? String, annotation: options["UIApplicationOpenURLOptionsAnnotationKey"] as? String)
return true
}
我不知道为什么我会得到这个,有其他人知道吗?
它在以前的版本 7.3.1 swift 2 中运行良好。
最佳答案
options
字典的类型已从 [String: AnyObject]
更改为 [UIApplicationOpenURLOptionsKey : Any]
这意味着您应该使用下标UIApplicationOpenURLOptionsKey
而不是像您现在所做的那样 String
。
试试这个:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
guard let sourceApplication = options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String,
let annotation = options[UIApplicationOpenURLOptionsKey.annotation] else {
return false
}
return FBSDKApplicationDelegate.sharedInstance().application(app, open: url,
sourceApplication: sourceApplication,
annotation: annotation)
}
此代码从 options
中提取您要查找的键,并将它们传递给 FBSDKApplicationDelegate
。请注意使用 UIApplicationOpenURLOptionsKey.sourceApplication
和 UIApplicationOpenURLOptionsKey.annotation
来访问选项字典中的值。
关于ios - 使用 FBSDKApplicationDelegate 时对成员 'subscript' 的引用不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39506798/