首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Swift 4中访问[UIApplicationOpenURLOptionsKey : Any]的值?

如何在Swift 4中访问[UIApplicationOpenURLOptionsKey : Any]的值?
EN

Stack Overflow用户
提问于 2017-12-05 12:51:38
回答 1查看 2.8K关注 0票数 1

我是斯威夫特的新人。我希望访问此方法的sourceApplication参数中的options值。

代码语言:javascript
运行
复制
optional func application(_ app: UIApplication, 
                     open url: URL, 
                  options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool

我检查了文献资料,发现UIApplicationOpenURLOptionsKey是一个结构。它包含一个类型属性:static let sourceApplication: UIApplicationOpenURLOptionsKey

但是,当我试图通过这样做访问sourceApplication值时:

代码语言:javascript
运行
复制
options.sourceApplication

引发...this错误:

类型'[UIApplicationOpenURLOptionsKey : Any]‘的值没有成员'sourceApplication

我认为这可能是一本字典,但键的类型是UIApplicationOpenURLOptionsKey。我不知道如何使用键类型UIApplicationOpenURLOptionsKey访问值。

我查看了教程点和其他一些网站,但没有找到解决方案。

我的问题是:

  1. 如何从sourceApplication访问名为options的值
  2. 你称之为什么类型的参数?([UIApplicationOpenURLOptionsKey : Any] = [:])?这是字典吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-05 12:54:41

SWIFT4.2的更新

方法改为:

代码语言:javascript
运行
复制
func open(_ url: URL, 
          options: [UIApplication.OpenExternalURLOptionsKey : Any] = [:], 
          completionHandler completion: ((Bool) -> Void)? = nil)

您可以以同样的方式访问这些密钥。

options是字典。您应该访问它的sourceApplication 键。

代码语言:javascript
运行
复制
if let sourceApp = options[.sourceApplication] as? String {
    //work with the value
}

包含向应用程序发送打开URL请求的应用程序的包ID。值是一个NSString对象。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47654083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档