我是斯威夫特的新人.我希望访问此方法sourceApplication的options参数内的值.
optional func application(_ app: UIApplication,
open url: URL,
options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool
Run Code Online (Sandbox Code Playgroud)
我检查了文档,发现这UIApplicationOpenURLOptionsKey是一个结构.它包含一个类型属性:static let sourceApplication: UIApplicationOpenURLOptionsKey
但是,当我尝试sourceApplication通过执行此操作来访问该值时:
options.sourceApplication
Run Code Online (Sandbox Code Playgroud)
...抛出此错误:
型的"值
[UIApplicationOpenURLOptionsKey : Any]"没有成员"sourceApplication"
我有一个想法,这可能是一本字典,但关键的类型是UIApplicationOpenURLOptionsKey.我不知道如何使用密钥类型访问该值UIApplicationOpenURLOptionsKey.
我检查了教程点和其他一些网站,但没有找到解决方案.
我的问题是:
sourceApplication从options?[UIApplicationOpenURLOptionsKey : Any] = [:])?这是一本字典吗?更新Swift 4.2
该方法更改为:
func open(_ url: URL,
options: [UIApplication.OpenExternalURLOptionsKey : Any] = [:],
completionHandler completion: ((Bool) -> Void)? = nil)
Run Code Online (Sandbox Code Playgroud)
您可以以相同的方式访问密钥.
options是一本字典.你应该访问它的sourceApplication 密钥.
if let sourceApp = options[.sourceApplication] as? String {
//work with the value
}
Run Code Online (Sandbox Code Playgroud)
包含向您的应用发送开放URL请求的应用的捆绑包ID.价值是一个
NSString对象.