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

Fre*_*eer 4 iphone path nsurl

如果有文件系统路径,则可以使用stringByResolvingSymlinksInPath选择器删除".."(并删除先前的路径组件).如何为URL实现相同的功能?例如,我开始说,说:

www.example.com/themes/themeA/../common/assetA.png
Run Code Online (Sandbox Code Playgroud)

我需要转换为:

www.example.com/themes/common/assetA.png
Run Code Online (Sandbox Code Playgroud)

zap*_*aph 7

对于URL,请使用NSURL方法:

- (NSURL *)standardizedURL
Run Code Online (Sandbox Code Playgroud)

返回一个新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);
Run Code Online (Sandbox Code Playgroud)

NSLog输出:

su: www.example.com/themes/common/assetA.png
Run Code Online (Sandbox Code Playgroud)