如果您有文件系统路径,则可以使用stringByResolvingSymlinksInPath
选择器删除“..”(并删除先前的路径组件)。如何为URL实现相同的功能?例如,我开始说:
www.example.com/themes/themeA/../common/assetA.png
我需要转换为:
www.example.com/themes/common/assetA.png
答案 0 :(得分:7)
对于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
答案 1 :(得分:2)
以下情况如何?
NSString* resolved_url
= [[[NSURL URLWithString: @"www.example.com/themes/themeA/../common/assetA.png"] standardizedURL] absoluteString];
如果您想要NSURL
而不是NSString
,请移除对absoluteString
的通话。