从 URL 的字符串表示形式中删除".."



当您有一个文件系统路径时,您可以使用stringByResolvingSymlinksInPath选择器删除一个".."(以及之前的路径组件)。如何对URL实现相同的功能?例如,我开始说:

www.example.com/themes/themeA/../common/assetA.png

需要转换为:

www.example.com/themes/common/assetA.png

对于URL使用NSURL方法:

- (NSURL *)standardizedURL

返回一个新URL,该URL指向与原始URL相同的资源,并且是一个绝对路径。

的例子:

NSString *s  = @"www.example.com/themes/themeA/../common/assetA.png";
NSURL    *u  = [NSURL URLWithString:s];
NSURL    *su = [u standardizedURL];
NSLog(@"su: %@", su);

NSLog输出:

su: www.example.com/themes/common/assetA.png

下面这些呢?

NSString* resolved_url 
    = [[[NSURL URLWithString: @"www.example.com/themes/themeA/../common/assetA.png"] standardizedURL] absoluteString]; 

如果您想要NSURL而不是NSString,请删除对absoluteString的调用

最新更新