当您有一个文件系统路径时,您可以使用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
的调用