gpt4 book ai didi

url - 当方案没有双斜杠时无法抓取 NSURL 组件

转载 作者:行者123 更新时间:2023-12-01 01:15:37 24 4
gpt4 key购买 nike

我正在尝试使用 NSURL 类引用中提供的方法解析 URL 以获取方案、路径和参数。但是,我注意到,如果我以这种方式构建 url(方案后没有双斜线):

NSString *urlString = @"customScheme:myPath?parameter=hello&other_parameter=12";
NSURL *url = [NSURL URLWithString:urlString];

我无法从 NSURL 中获取任何这些值。换句话说,方法
path
query

返回零。

如果我像这样添加双斜杠:
NSString *urlString = @"customScheme://myPath?parameter=hello&other_parameter=12";
NSURL *url = [NSURL URLWithString:urlString];

一切正常。为什么是这样?

谢谢!

最佳答案

这些方法在 Apple 的文档中有非常清楚的记录:

path Returns the path of a URL conforming to RFC 1808.

- (NSString *)path

The path of the URL, unescaped with the stringByReplacingPercentEscapesUsingEncoding: method. If the receiver does not conform to RFC 1808, returns nil.



https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURL_Class/Reference/Reference.html

RFC 1808 非常清楚什么构成了有效的相对 URL:

<scheme>://<net_loc>/<path>;<params>?<query>#<fragment>



http://www.w3.org/Addressing/rfc1808.txt

如果你想解析 mailto: URL 之类的,你必须使用除 NSURL 以外的东西。去做吧。

关于url - 当方案没有双斜杠时无法抓取 NSURL 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12223462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com