【问题标题】:Equivalent of parameterString NSURL in URLURL 中 parameterString NSURL 的等价物
【发布时间】:2018-10-07 06:14:38
【问题描述】:

我有特定的 uri 要解析,之前我使用 NSURLparameterString 属性进行解析,我想将代码迁移到 Swift,但现在我看到 URL 结构中不再提供此属性。

深层链接示例://home;type=O;name=bob;surname=hhh;hasCar=YES;

使用parameterString 我得到type=O;name=bob;surname=hhh;hasCar=YES 结果。

我在 Swift URL 结构中找不到类似的工作方法/属性。任何想法?谢谢!

【问题讨论】:

  • 查看URLComponents
  • @rmaddy 我以前看过,但请告诉我,你到底在想什么?
  • 那个 URL 只有一个 host 并且根本没有查询参数。我看不出NSURL.parameterString 在你的情况下会如何给出预期的结果。
  • @MartinR 请参阅developer.apple.com/documentation/foundation/nsurl,了解queryparameterString 之间的区别。其实URLComponents也省略了。
  • @Sulthan:但是NSURL(string: "//home;type=O;name=bob;surname=hhh;hasCar=YES;")?.parameterString 返回 nil ...

标签: ios swift url nsurl


【解决方案1】:

查看文档,没有等效的。老实说,我从来没有见过这种用法,因为每个人似乎都在使用query。要访问它,您必须恢复到NSURL

let url = URL(string: "//home/;type=O;name=bob;surname=hhh;hasCar=YES;")!
let parameterString = (url as NSURL).parameterString
print(parameterString) // "type=O;name=bob;surname=hhh;hasCar=YES;"

在我看来NSURL 是基于RFC 1808URL 是基于RFC 3986

【讨论】:

  • 这给nil 提供了问题中的URL(NSURL(string: "//home;type=O;name=bob;surname=hhh;hasCar=YES;")?.parameterString 也是如此)
  • @MartinR 是的,但事实是在URL 上没有parameterString 的等价物。
  • 关于 RFC 1808 与 3986 的好消息!顺便说一句,“真实”的 URL 也可以是 ///home;type=O;...
猜你喜欢
  • 2011-01-08
  • 2019-11-03
  • 1970-01-01
  • 2020-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多